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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/u013251692/article/details/78090303

今天学习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没有存储我之前的行为,千万记住一定要写在一起.

猜你喜欢

转载自blog.csdn.net/u013251692/article/details/78090303