我正在尝试在我的数据库上链接多个操作以获取更改存储库,以便于开发/生产环境之间的数据库一致性。我创建了一个包含多个命令的文件,并且我得到了这个奇怪的错误,我似乎找不到引用。
以下摘录如下:
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
答案 0 :(得分:2)
我在
中添加了delimiter ;
drop procedure if exists SearchByWantListCount;
似乎让一切都快乐....
答案 1 :(得分:1)
这是因为当你想使用分隔符时,你不需要在$$之前放置分隔符。简单地说就是$$。
您使用的语法定义了分隔符,这是之前完成的事情(因为我们可以看到您在END上使用分隔符)。
为什么“分隔符”;工作是因为分句结束时“drop procedure如果存在SearchByWantListCount;”然后被计为分隔符。你在这里放“delimiter $$”,你需要在下线和下一个程序的开始之间(SearchByWantListCount)之间的$$,或者如果你想重新定义它,需要在“delimiter $$”之前。
顺便说一下,你不需要你的“分隔符”;因为你把$$放在前一个END符号之后。只需删除$$之前的“分隔符”。