创建函数时出现 MySQL 错误 1064

标签 mysql mysql-error-1064 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

关于创建函数时出现 MySQL 错误 1064,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47000254/

相关文章:

MySQL 列上的触发器

php - 在执行基本 SELECT 操作时,您的 SQL 语法有错误

mysql - 使用重复键更新插入会出现错误 1064

Mysql查询列出每个日期匹配的结果

MySQL 查找获得最高正进展需要多少天

Php - 理解 create_function() - 传递简单变量

MySQL 创建带有值的函数语句并返回数据类型decimal

Mysql "access denied for user"错误?

php - 我无法修复的 SQL 错误