MySql命令行創建和刪除觸發器

觸發器是一種特殊的存儲過程,它在插入,刪除或修改特定表中的數據時觸發執行,它比數據庫本身標準的功能有更精細和更復雜的數據控制能力。

現有表tab1和tab2

要求觸發器具有下面功能:當對tab1插入一條記錄時則tab2也插入相同的記錄

1
2
3
4
5
6
7
8
mysql>delimiter //
mysql> CREATE TRIGGER t_afterinsert_on_tab1
-> AFTERINSERT ON tab1
-> FOR EACH ROW
-> BEGIN
-> insert into tab2(tab2_id) values(new.tab1_id);
-> END;
->//
在執行如下語句,恢復設置
1
mysql> delimiter ;

其中delimiter作用: 告訴mysql解釋器,該段命令是否已經結束了,mysql是否可以執行了。默認情況下,delimiter是分號;。在命令行客戶端中,如果有一行命令以分號結束,那麼回車後,mysql將會執行該命令。但有時候,不希望MySQL這麼做。在爲可能輸入較多的語句,且語句中包含有分號。使用delimiter //,這樣只有當//出現之後,mysql解釋器纔會執行這段語句。


刪除觸發器:

1
droptriggert_afterinsert_on_tab1;

爲什麼創建觸發器時使用 for each row 這是因爲加上這句則觸發事件就是行級的,那麼對每一行有這個動作都要觸發一次事件。



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