代码是:

DELIMITER $$
CREATE FUNCTION CHECK_AVABILITY(nama CHAR(30))
RETURNS INT(4)
DECLARE vreturn INT(4);
BEGIN
IF nama = 'ika' THEN
SET vreturn = 0;
ELSE
SET vreturn = 1;
END IF
RETURN vreturn;
END $$

错误消息是:
错误1064(42000):您的sql语法中有错误;请查看对应于MySQL服务器版本的手册,以获取在“DECLARE vreturn INT4”附近使用的正确语法;BEGIN”
感谢您的帮助。

最佳答案

DECLARE vreturn INT(4)移到BEGIN / END块内。您可能还需要在;之后加上END IF
此外,这看起来像是一个DETERMINISTIC函数。在DETERMINISTIC之前添加BEGIN关键字。

DELIMITER $$
CREATE FUNCTION CHECK_AVABILITY(nama CHAR(30))
RETURNS INT(4)
DETERMINISTIC
BEGIN
  DECLARE vreturn INT(4);
  IF nama = 'ika' THEN
    SET vreturn = 0;
  ELSE
    SET vreturn = 1;
  END IF;
  RETURN vreturn;
END $$

关于mysql - 为什么此函数在DECLARE附近出现语法错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7129121/

10-13 00:58