資料庫物件觸發器用來實現由一些表事件觸發的某個操作,當執行表事件時,則會啟用觸發器,從而執行其包含的操作;
mysql在觸發以下語句時,會自動執行所設定的操作:delete、insert、update語句,其他sql語句則不會啟用觸發器;
觸發器的操作包括建立觸發器,檢視觸發器和刪除觸發器。
在mysql中建立觸發器通過以下語句實現:
createtrigger trigger_name before|after trigger_event on table_name for each now trigger_stmt;
before和after引數指定了觸發器的執行時間,before是指在觸發器事件之前執行觸發語句,trigger_event表示觸發事件,即觸發器執行條件,包含delete、insert、update語句,trigger_stmt表示啟用觸發器後被執行的語句,如:
createtrigger tri_diary before insert
on t_dept for each now insert
into t_diary values(null, '
t_dept
', now()) ;
當向t_dept插入任意一條記錄,都會在此之前向t_diary表插入當前事件記錄。
如需建立多條包含執行語句的觸發器,可通過以下命令實現:
createtrigger trigger_name before|after trigger_event on table_name for each row begin
insert trigger_stmt end
舉個例子吧,如果需要每次在t_dept插入資料之後向表t_diary插入兩條當前時間,語句如下:
delimiter $$create
trigger
tri_diary2
after
insert
on t_dept for
each row
begin
insert
into t_diary values(null, '
t_dept
', now());
insert
into t_diary values(null, '
t_dept
', now());
end$$
delimiter;
檢視觸發器,類似於表和檢視,都是通過show等語句實現:
show triggers ;
在系統表information_schema表中也可實現檢視觸發器:
useinformation_schema;
select
*from
trigger;
刪除觸發器:
droptrigger tri_name;
MYSQL觸發器的操作
1 為什麼使用觸發器 觸發器是mysql的資料庫物件之一,那為什麼要使用觸發器呢?在開發具體專案時,經常會遇到如下例項 在學生表中擁有字段學生姓名,字段學生總數,每當新增一條關於學生記錄時,學生的總數就必須同時改變。在顧客資訊表中擁有字段顧客名字,字段顧客的 和字段顧客的位址,每當新增一條顧客記錄時...
Mysql 觸發器的操作
例子 在資料庫company中存在兩個表物件 部門表 t dept 和日記表 t diary 建立觸發器實現向部門表中插入記錄時,就會在插入之前向日記表中插入當前時間。部門表 日記表 建立觸發器 插入記錄 結果 日記表也多了一條記錄 語法 例子 建立觸發器實現當前向部門表中插入記錄時,就會在插入之後...
觸發器 mysql觸發器
觸發器是一種特殊的儲存過程,它在插入 刪除或修改特定表中的資料時觸發執行,它比資料庫本身標準的功能有更精細和更複雜的資料控制能力。和儲存過程一樣,很少使用。1 觸發器的作用 2 建立觸發器 建立測試環境 mysql create database test db query ok,1 row aff...