1、總所周知,mysql的命令行執行每一條命令是以分號結尾的,也就是說識別是否爲一條命令,是根據分號決定的。
然而存儲過程中設計多條語句,很可能出現多個分號,所以直接把存儲過程複製到命令號一般都會失敗
2、解決方法是需要加一個分隔符,讓命令行知道整個存儲過程的代碼是完整的一塊代碼,代碼如下
[sql] view plain copy
- DELIMITER //
- CREATE PROCEDURE p_name (IN b INTEGER(12))
- begin
- declare a INTEGER(12);
- set a=12;
- INSERT INTO t VALUES (a);
- SELECT s1* a FROM t;
- End
- //
3、如代碼中所示,在存儲過程的開頭加上“DELIMITER //”,結尾加上“//”就ok了