为什么这个函数在DECLARE附近有语法错误?

Bag*_*ono 2 mysql function

代码是:

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 $$
Run Code Online (Sandbox Code Playgroud)

错误消息是:

错误1064(42000):你的sql语法错误; 检查与MySQL服务器版本对应的手册,以便在"DECLARE vreturn INT4"附近使用正确的语法; 开始'

感谢帮助.

Mic*_*ski 6

移动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 $$
Run Code Online (Sandbox Code Playgroud)