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
mysql stored procedure error: missing semicolon
提问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

