生产环境存储过程分号结束SQL问题

1、总所周知,mysql的命令行执行每一条命令是以分号结尾的,也就是说识别是否为一条命令,是根据分号决定的。

       然而存储过程中设计多条语句,很可能出现多个分号,所以直接把存储过程复制到命令号一般都会失败

2、解决方法是需要加一个分隔符,让命令行知道整个存储过程的代码是完整的一块代码,代码如下

1 DELIMITER //     
2 CREATE PROCEDURE p_name (IN b INTEGER(12))     
3 begin     
4  declare a INTEGER(12);     
5  set a=12;     
6  INSERT INTO t VALUES (a);     
7  SELECT s1* a FROM t;     
8 End     
9 //  

3、如代码中所示,在存储过程的开头加上“DELIMITER //”,结尾加上“//”就ok了

posted @ 2018-10-19 16:46  列兵许四多  阅读(172)  评论(0)    收藏  举报