linux系統下無法創建mysql存儲過程問題

創建存儲過程的完整命令:

CREATE PROCEDURE pro1()

begin

    declare b int default 0;

end;

mysql中運行存儲過程創建語句錯誤結果:

root@db1>CREATE PROCEDUREpro1()

    -> begin

    ->    declare b int default 0;

ERROR 1064 (42000): You havean error in your SQL syntax; check the manual that corresponds to your MySQLserver version for the right syntax to use near '' at line 3

root@db1>end;

mysql 默認把分號做爲命令執行的結束標識符號。在創建存儲過程命令中當遇見declare b int default 0;語句中的分號時,mysql解釋器立即執行declare b int default 0;及其之前的語句,所以報語法錯誤。

我們可以使用delimiter命令來改變mysql 命令執行結束符。

root@db1>delimiter $

root@db1>CREATE PROCEDUREpro1()

    -> begin

    ->    declare b int default 0;

    -> end;

    -> $

Query OK, 0 rows affected(0.00 sec)

root@db1>


發佈了98 篇原創文章 · 獲贊 88 · 訪問量 145萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章