【问题标题】:mysql stored procedure error: missing semicolonmysql存储过程错误:缺少分号
【发布时间】:2014-12-11 10:25:25
【问题描述】:

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

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 ;

它给了我missing semicolon error。不知道为什么会出现这个错误。有人可以帮我吗?

【问题讨论】:

    标签: mysql stored-procedures


    【解决方案1】:

    试试这样:

    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 ;
    

    【讨论】:

      【解决方案2】:

      只有一个BEGIN和两个ENDs,去掉第二个END就可以了。

      【讨论】:

      • 我没有得到接受的答案和问题之间的区别。你给出了完美的解释。
      【解决方案3】:

      root@localhost替换为root@localhost

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-07
        • 1970-01-01
        • 1970-01-01
        • 2017-07-17
        • 2016-02-14
        • 2012-04-26
        • 2016-02-08
        • 2023-03-23
        相关资源
        最近更新 更多