創建存儲過程的完整命令:
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>