MySQL mysql存储过程错误:缺少分号

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/27420515/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-31 13:13:42  来源:igfitidea点击:

mysql stored procedure error: missing semicolon

mysqlstored-procedures

提问by Ajay

I have following store procedure. It is give me some error

我有以下存储过程。这是给我一些错误

DROP procedure IF exists getQueueMessage;
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `getQueueMessage`(msg varchar(100))
BEGIN

SELECT `Name` FROM queues WHERE Id  IN (
SELECT PhysicalQueueId FROM indexqueuemaps WHERE ConditionFieldValue = msg)
END
END$$
DELIMITER ;

It is giving me missing semicolon error. Don't know Why this error is getting. Can someone help me?

它正在给我missing semicolon error。不知道为什么会出现此错误。有人能帮我吗?

回答by fancyPants

Try like this:

像这样尝试:

DROP procedure IF exists getQueueMessage;
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `getQueueMessage`(msg varchar(100))
BEGIN

SELECT `Name` FROM queues WHERE Id  IN (
SELECT PhysicalQueueId FROM indexqueuemaps WHERE ConditionFieldValue = msg);
END$$
DELIMITER ;

回答by Hartmut Holzgraefe

There's only one BEGINand two ENDs, remove the 2nd ENDand you should be fine.

只有一个BEGIN和两个ENDs,删除第二个END,你应该没问题。

回答by Colin

Replace root@localhostwith root@localhost

替换root@localhost用root @localhost