创建函数时出现“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语法错误”[关闭]的主要内容,如果未能解决你的问题,请参考以下文章