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

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


简单示例以下:svg

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没有存储我以前的行为,千万记住必定要写在一块儿.spa