MySQL學習筆記(12) 觸發器

2022-06-05 19:42:08 字數 1197 閱讀 8087

本文更新於2019-06-23,使用mysql 5.7,作業系統為deepin 15.4。

目錄為了便於描述,此處將建立觸發器的ddl複述一次,其已於「sql」章節描述。

create trigger triggername before|after insert|update|delete

on tablename for each row

statement_list

在statement_list中使用別名oldnew來引用觸發器中發生變化的舊記錄和新記錄內容。目前觸發器只支援行級觸發,不支援語句級觸發。

觸發器是行觸發的,按照before觸發器、行操作、after觸發器的順序執行,任何一步出錯都不會繼續執行餘下操作。如果是事務表,則會整個作為乙個事務回滾。對insert into ... on duplicate key update ...語句,若有重複主鍵的記錄需進行update,觸發順序為before insertbefore updateafter update;若沒有重複主鍵的記錄直接insert,觸發順序為before insertafter insert

statement_list可以通過儲存過程或函式的outinout引數將資料返回觸發器,但不能呼叫直接returns的函式。也不能顯式或隱式開始或結束事務,如start transactioncommitrollback

delimiter ;;

create trigger trigger_test before update

on t for each row

begin

insert into history(old_id, old_value, new_id, new_value) values (old.id, old.value, new.id, new.value);

end;;

delimiter ;

MySQL學習筆記6(觸發器)

觸發器 trigger 是由事件來觸發某個操作。這些事件包括insert語句 update語句和delete語句。當資料庫系統執行這些事件時,就會啟用觸發器執行相應的操作。1 觸發器的含義和作用 2 如何建立觸發器 3 如何檢視觸發器 4 如何刪除觸發器 語法基本形式為 create trigger...

Mysql學習筆記(十二)觸發器

原文 mysql學習筆記 十二 觸發器 學習內容 1.觸發器 什麼是觸發器?我們什麼時候能夠使用觸發器?觸發器就是用來監聽某個表的變化,當這個表發生變化的時候來觸發某種操作.比若說兩個表是相互關聯的,當我們在對其中乙個 進行操作的同時,另乙個表內的資料也需要進行某種操作,那麼我們就需要建立乙個觸發器...

(八)MySQL學習筆記 觸發器

觸發器有三種 觸發器型別 old的含義 new的含義 insert 型觸發器 無 因為插入前狀態無資料 new 表示將要或者已經新增的資料 update 型觸發器 old 表示修改之前的資料 new 表示將要或已經修改後的資料 delete 型觸發器 old 表示將要或者已經刪除的資料 無 因為刪除...