2013-02-16 91 views
1

我想链接我的数据库上的多个操作的变更回购协议,以方便开发/生产环境之间的数据库一致性。我用多个命令创建了一个文件,并得到了这个我似乎无法找到参考的奇怪错误。

一个片断如下:

deallocate prepare stmt; 

END$$ 

drop procedure if exists SearchByWantListCount; 

delimiter $$ 

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

delimiter被红色下划线,我得到的错误:

syntax error, unexpected IDENT_QUOTED, expecting $end

回答

2

我在

delimiter ; 
drop procedure if exists SearchByWantListCount; 

添加了似乎让一切都开心......

1

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

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

为什么“分隔符”工作是因为分号末尾的分号如果存在SearchByWantListCount;然后被计为分隔符。你会在这里输入“delimiter $$”吗?如果你想重新定义它,你需要在下拉线和下一个过程的开始(SearchByWantListCount)之间有一个$$,或者在“delimiter $$”之前。

顺便说一句,你不需要你的“分隔符”;因为您在前一个END符号之后放置了$$。只需在$$之前删除“分隔符”即可。

相关问题