HeidiSQL中的MySQL函数问题

时间:2017-12-16 14:24:59

标签: mysql heidisql

现在我第一次在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; 

0 个答案:

没有答案