创建函数时出现“MySQL语法错误”[关闭]

Posted

技术标签:

【中文标题】创建函数时出现“MySQL语法错误”[关闭]【英文标题】:"MySQL syntax error" while creating a function [closed] 【发布时间】:2013-05-31 05:39:01 【问题描述】:

"#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 ;

怎么了?

【问题讨论】:

【参考方案1】:

你的分隔符更改试试这个

DELIMITER $

DROP FUNCTION IF EXISTS TavoliLiberi$

其余部分保持不变

【讨论】:

【参考方案2】:

您的分隔符首选项设置在错误的位置。请尝试以下操作:

DROP FUNCTION IF EXISTS TavoliLiberi;

DELIMITER $

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

【讨论】:

在函数声明中是 RETURNS not RETURN "CREATE FUNCTION TavoliLiberi (dataora DATETIME) RETURNS BOOL"。 [已解决] 问题是 Luis G. Costantini R. 建议我使用“RETURN”而不是“RETURNS”,但只能从终端上传而不是使用 phpMyAdmin 导入,它已被正确处理.

以上是关于创建函数时出现“MySQL语法错误”[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

执行 mysqli_query 时出现 SQL 语法错误

给我 MySql 语法错误? [关闭]

尝试使用 if 语句创建函数时出现 Postgresql 语法错误

MYSQL 语法错误?请帮助我得到错误声明[关闭]

WHERE选择上的MySQL语法错误[关闭]

使用参数[duplicate]创建bash函数时出现语法错误