MySQL的觸發器建立之注意事項(有關delimiter)
阿新 • • 發佈:2019-02-06
今天晚上在自己的資料庫上做了一個觸發器。由於自己之前是使用SQL Server2005學習SQL語句的,所以在這個簡單的觸發器設計出現了一些自己意想不到的BUG。現在我來簡單的說一下:
這裡使用到 diary表、comments表和favour表。建立觸發器語句是這樣的:
create trigger delete_diary_tri
before delete on diary
for each row begin
delete from comments where comments.did = old.did;
end;
結果一直報錯:
發現了 delimiter 的作用與重要之處:
預設情況下,delimiter “;” 用於向 MySQL 提交查詢語句。在儲存過程中每個 SQL 語句的結尾都有個 “;”,如果這時候,每逢 “;” 就向 MySQL 提交的話,當然會出問題了。於是更改 MySQL 的 delimiter,上面 MySQL 觸發器程式設計這樣子了:
delimiter $$ create trigger delete_diary_tri before delete on diary for each row begin delete from comments where comments.did = old.did; end $$ delimiter ;
成功執行!