MySQL中存储过程无限报错的问题(delimiter)

今天学习MySQL的存储过程的时候,在创建存储过程的时候无限报错,我用的是MySQL的5.6.x版本
后来才发现不能把delimiter语句写完后删除再写create procedure语句(我用了小写表达,免得有人读的时候看大写单词费劲)我天真的以为delimiter语句会被MySQL这个程序存储


简单示例如下:

delimiter //                        #将delimiter设置为//
create procedure A()            #创建存储过程A(A才是你的过程名字)
begin                                   #表明存储过程开始语句
select * from vendors;          #注意此处的封号;
end                                     #表明存储过程结束语句
//                                          #MySQL开始执行语句

Q1:为什么设置delimiter?
大家应该记得在交互的时候只要一出现封号; 你之前输入的语句就会直接执行了,但有时我们不希望MySQL这样做,我们需要继续输入别的语句,此时delimiter就发挥了作用,我们将本来默认的delimiter ; 改为别的符号,例如delimiter //(注意不可以用\) ,写了此语句后MySQL在看到//才会运行这些语句


Notice: 因为我是使用的MySQL的workbench,所以我在输入delimiter //后直接执行了,然后删除了此语句才写了后面的句子,但MySQL没有存储我之前的行为,千万记住一定要写在一起.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值