MYSQL语法错误,意外IDENT_QUOTED,期待$ end

时间:2013-02-16 00:18:00

标签: mysql delimiter

我正在尝试在我的数据库上链接多个操作以获取更改存储库,以便于开发/生产环境之间的数据库一致性。我创建了一个包含多个命令的文件,并且我得到了这个奇怪的错误,我似乎找不到引用。

以下摘录如下:

deallocate prepare stmt;

END$$

drop procedure if exists SearchByWantListCount;

delimiter $$

CREATE DEFINER=`webaccess`@`%` PROCEDURE `SearchByWantListCount`(
    IN loggedInUser INT,
    IN filter varchar(255))
BEGIN

delimiter以红色加下划线,我收到错误:

  

语法错误,意外IDENT_QUOTED,期待$ end

2 个答案:

答案 0 :(得分:2)

我在

中添加了
delimiter ;
drop procedure if exists SearchByWantListCount;

似乎让一切都快乐....

答案 1 :(得分:1)

这是因为当你想使用分隔符时,你不需要在$$之前放置分隔符。简单地说就是$$。

您使用的语法定义了分隔符,这是之前完成的事情(因为我们可以看到您在END上使用分隔符)。

为什么“分隔符”;工作是因为分句结束时“drop procedure如果存在SearchByWantListCount;”然后被计为分隔符。你在这里放“delimiter $$”,你需要在下线和下一个程序的开始之间(SearchByWantListCount)之间的$$,或者如果你想重新定义它,需要在“delimiter $$”之前。

顺便说一下,你不需要你的“分隔符”;因为你把$$放在前一个END符号之后。只需删除$$之前的“分隔符”。