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

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

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

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

[sql] view plain copy

  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了

猜你喜欢

转载自blog.csdn.net/Solder_Sun/article/details/80775328