2008年5月27日 星期二

trigger


引用網址

http://dev.mysql.com/doc/refman/5.0/en/triggers.html#nolinkhere

trigger

概論:
trigger是資料庫中的一種物件,trigger物件的運作與資料表息息相關,當對資料表執行insert、update或delete的動作時才會觸發指定的trigger物件,執行trigger內的sql敘述,底下以實例說明會比較清楚:

#建立一個資料表,名稱是employ

create table employ(hour int,net_pay int);


#建立一個與employ資料表相關的trigger,名稱是tri_cal
#這個trigger的作用是當插入資料到資料表employ中時,變數sum的值會與資料表employ
#中的新揷入的欄位net_pay的值相加。

create trigger tri_cal
before insert
on employ
for each row
set @sum=@sum+new.net_pay;



#變數sum的值會變成2

set @sum=0;
insert imploy(hour,net_pay) values(1,2);
select @sum;


#變數sum的值會變成4

insert imploy(hour,net_pay) values(1,2);
select @sum;


語法說明:
create [definer={usercurrent_user}] trigger trigger_name
trigger_time trigger_event
on table_name
for each row
trigger_stmt


trigger_time
before
after

trigger_event
insert
update
delete


table_name
指定觸發trigger的table


trigger_stmt
觸發後執行的sql敘述

沒有留言: