MySQL—觸發器基礎

MySQL 技術 小海dedede 2017-03-31

數據庫中的觸發器是以針對數據庫的操作(增刪改)而被調用的特殊存儲過程。通常也叫事件。觸發器實現了相關表的更新處理自動化的機制。

觸發器並不是直接被調用執行的,而是針對具體表的操作時被調用,也就是說在創建觸發器時,需要指定針對哪個表的操作才能成為觸發裝置,而這個表就是觸發器調用方的表。

基本語法:

MySQL—觸發器基礎

觸發器語法

條件決定觸發器運行的時刻:

由事件名和發生時刻決定。事件名就是指insert、update、delete等操作。並不是嚴格意義上的insert、update、delete命令,像replace、load data infile等伴隨有數據插入動作的處理都屬於insert類。

發生時刻是指決定觸發器在事件發生之前還是發生之後,指定before或after其中之一即可。

for each row:

固定值,表示觸發器是以行為單位執行的,例如當用戶執行刪除2條記錄行時,意味著與刪除動作相關的觸發器也會被執行2次。

例子:創建日記表person_log存放person表被刪除的行,當刪除person的記錄時將其保存到person_log表裡。

1、先創建一個空的person_log表用來存放被刪除的記錄。

2、創建一個觸發器del_person,執行刪除操作後將記錄插入到person_log表。

MySQL—觸發器基礎

觸發器person_log

3、從person表中執行刪除記錄操作來觸發事件

MySQL—觸發器基礎

4、查看person_log表結果:

MySQL—觸發器基礎

結果:從person表執行刪除一條記錄後會觸發person_log表中增加被刪除的記錄。

觸發器特有的特徵:old/new關鍵字

根據變更前後的數據記錄來使用。

可使用的關鍵詞與事件關係:

MySQL—觸發器基礎

相關推薦

推薦中...