创建函数时出现“MySQL语法错误”

时间:2013-06-04 17:54:58

标签: mysql function syntax

“#1064 - 您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以便在第3行的'CREATE FUNCTION TavoliLiberi(dataora DATETIME)RETURN BOOL BEGIN DECLARE prese'附近使用正确的语法“在这个功能中:

DELIMITER $

DROP FUNCTION IF EXISTS TavoliLiberi;

CREATE FUNCTION TavoliLiberi (dataora DATETIME) RETURN BOOL
BEGIN
DECLARE presenti BOOL;
DECLARE numPrenotazioni INT;
DECLARE numTavoli INT;

SELECT COUNT(*) INTO numPrenotazioni
FROM Prenotazioni
WHERE DataOra = dataora;

SELECT COUNT(*) INTO numTavoli
FROM Tavoli;

IF (numPrenotazioni < numTavoli) THEN
    SET presenti = TRUE;
ELSE
    SET presenti = FALSE;
END IF;

RETURN presenti;
END $

DELIMITER ;

怎么了?

2 个答案:

答案 0 :(得分:2)

看起来您的分隔符首选项设置在错误的位置。请尝试以下方法:

DROP FUNCTION IF EXISTS TavoliLiberi;

DELIMITER $

CREATE FUNCTION TavoliLiberi (dataora DATETIME) RETURN BOOL
....
....

答案 1 :(得分:1)

您的分隔符更改尝试此操作

DELIMITER $

DROP FUNCTION IF EXISTS TavoliLiberi$

保持其余部分相同