mysql 存儲過程的一些問題

格式爲

CREATE PROCEDURE methodName()

BEGIN

/*一系列sql語句*/

END

DELIMITER;

具體意思不解釋了,說下問題,這句話中我確定sql語句正確但是執行的時候存儲過程能建立但是會報錯,爲

(0 row(s) affected)
Execution Time : 00:00:00:000
Transfer Time  : 00:00:01:233
Total Time     : 00:00:01:233

錯誤碼: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER' at line 1

經過排查發現原來最下面一行的DELIMITER後面必須加上空格纔不會報錯,正確的格式爲:

CREATE PROCEDURE methodName()

BEGIN

/*一系列sql語句*/

END

DELIMITER ; /*這裏DELIMITER與分號之間有空格*/

具體不知道爲何上面的DELIMITER和//之間不需要加空格,下面的卻要加求教~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

總結:

1.創建一個存儲過程並非把存儲過程中的代碼事先執行一遍,存儲過程不檢查sql語句的正確性但是每句sql後面必須加上;否則報錯不執行

2.若不在delimiter與;之間加上空格,存儲過程還能執行並存入,只是會報錯~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章