简体   繁体   English

在 MySQL 中创建 function 时出现错误 #1064

[英]Error #1064 in creating function in MySQL

friends.朋友们。

I am trying to create function in MySQL using this script:我正在尝试使用此脚本在 MySQL 中创建 function :

CREATE FUNCTION CurrentMemoDepartment(MID INT)
RETURNS INT
BEGIN
  DECLARE DeptID INT;
  SET DeptID = 0;
  SELECT TOP 1 TDeptID INTO DeptID FROM Transactions WHERE MemoID = MID ORDER BY ID DESC;
  RETURN DeptID;
END

but it says:但它说:

1064 - You have an error in your SQL syntax; 1064 - 您的 SQL 语法有错误; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 4检查与您的 MySQL 服务器版本相对应的手册,以获取在第 4 行的 '' 附近使用的正确语法

Single-statement function does not need in BEGIN-END, intermediate variables, DELIMITER reassing.单语句 function 不需要在 BEGIN-END、中间变量、DELIMITER 重新评估。

And MySQL uses LIMIT , not TOP n .并且 MySQL 使用LIMIT ,而不是TOP n

CREATE FUNCTION CurrentMemoDepartment(MID INT)
RETURNS INT
RETURN SELECT TDeptID 
       FROM Transactions 
       WHERE MemoID = MID 
       ORDER BY ID DESC
       LIMIT 1;

USE DELIMITER for declaring使用 DELIMITER 声明

like喜欢

DELIMITER $$
CREATE FUNCTION CurrentMemoDepartment(MID INT)
RETURNS INT
BEGIN
  DECLARE DeptID INT;
  SET DeptID = 0;
  SELECT TDeptID INTO DeptID FROM Transactions WHERE MemoID = MID ORDER BY ID DESC LIMIT 1;
  RETURN DeptID;
END$$
DELIMITER ;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM