MySQL 创建函数时出现错误 1064
MySQL ERROR 1064 in CREATE FUNCTION
我无法调试 CREATE FUNCTION
的代码。它给出以下错误:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 16
这是代码。
DELIMITER $$
CREATE FUNCTION CHECK_STATUS(SAL FLOAT) RETURNS VARCHAR(10)
DETERMINISTIC
BEGIN
DECLARE STATUS VARCHAR(10);
SET STATUS = "";
IF (SAL > 70000) THEN
SET STATUS = "A CLASS";
ELSEIF (SAL > 50000) THEN
SET STATUS = "B CLASS";
ELSE IF (SAL > 30000) THEN
SET STATUS = "C CLASS";
ELSE
SET STATUS = "D CLASS";
END IF;
RETURN STATUS; # This is line 16
END;
$$
PS:我看到过其他标题相同的问题,但它们是关于 DELIMITER
的,所以没有帮助。
我的 MySQL 版本是 5.7.19
将ELSE IF
改为ELSEIF
即可。它被视为 ELSE
然后未关闭的 IF
子句,没有 END IF
.
我无法调试 CREATE FUNCTION
的代码。它给出以下错误:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 16
这是代码。
DELIMITER $$
CREATE FUNCTION CHECK_STATUS(SAL FLOAT) RETURNS VARCHAR(10)
DETERMINISTIC
BEGIN
DECLARE STATUS VARCHAR(10);
SET STATUS = "";
IF (SAL > 70000) THEN
SET STATUS = "A CLASS";
ELSEIF (SAL > 50000) THEN
SET STATUS = "B CLASS";
ELSE IF (SAL > 30000) THEN
SET STATUS = "C CLASS";
ELSE
SET STATUS = "D CLASS";
END IF;
RETURN STATUS; # This is line 16
END;
$$
PS:我看到过其他标题相同的问题,但它们是关于 DELIMITER
的,所以没有帮助。
我的 MySQL 版本是 5.7.19
将ELSE IF
改为ELSEIF
即可。它被视为 ELSE
然后未关闭的 IF
子句,没有 END IF
.