在Navicat 中写MySQL存储过程的一个坑

欢迎关注我的公众号(只分享技术干货)

在这里插入图片描述

今天在Navicat上写了一个存储过程,然后运行执行都没有什么问题,可是部署执行的时候总是有问题。

 

后来在navicat上又仔细看了很久。还是没问题,执行了也没问题。

 

进linux mysql -uxxx -pxxx执行,还是报错:ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' 

 

很奇怪的一个原因,为什么在mysql命令行执行会报错,而通过navicat软件就没问题了???????

 

 

后来突然看到之前有人写的存储过程,看到了一个delimiter // ,看到这个立刻明白怎么回事了。太粗心了。把这个常识给忘了。

 

写存储过程一定要delimiter  某个标记一下,不然默认情况下mysql遇到分号; 就认为是一个执行标记。

 

后来添加上delimiter //  ,最后 使用//提交执行,最后在delimiter ;改成提交符号为分号;即可。

 

没想到navicat执行存储过程的时候,会默认就自动设置delimiter 为其他符号,修改了;为提交符号了。。。

 

好大的一个坑啊。

 

欢迎关注我的公众号(只分享技术干货)

在这里插入图片描述

 

 

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值