现在我第一次在HeidiSQL中创建了一个mySQL函数,它一直给我以下错误:
SQL错误(1064):您的SQL语法中有错误;检查与您的MySQL服务器版本对应的手册,以便在#34;附近使用正确的语法。在第5行
我无法理解,我的功能非常简单。此外,我从MySQL参考手册中复制了函数语法。这是功能:
CREATE FUNCTION ufn_get_salary_level(salary DECIMAL(19,4))
RETURNS VARCHAR(10)
BEGIN
DECLARE salary_level VARCHAR(10);
IF salary < 30000 THEN SET salary_level = 'Low';
ELSEIF salary >= 30000 AND salary <= 50000 THEN SET salary_level = 'Average';
ELSEIF salary > 50000 THEN SET salary_level = 'High';
END IF;
RETURN salary_level;
END;
当我使用DELIMITER时,它不断给我一个错误信息:
SQL错误(1418):该函数在其声明中没有DETERMINISTIC,NO SQL或READS SQL DATA,并且启用了二进制日志记录...
DELIMITER $$
CREATE FUNCTION ufn_get_salary_level(salary DECIMAL(19,4))
RETURNS VARCHAR(10)
DETERMINISTIC
BEGIN
DECLARE salary_level VARCHAR(10);
IF salary < 30000 THEN SET salary_level = 'Low';
ELSEIF salary >= 30000 AND salary <= 50000 THEN SET salary_level = 'Average';
ELSEIF salary > 50000 THEN SET salary_level = 'High';
END IF;
RETURN salary_level;
END $$
DELIMITER;