生成觸發器:
觸發器的大組件:
觸發器事件 定義激活觸發器的事件。觸發器事件包括INSERT、UPDATE與DELETE
定時條件 定義觸發器何時執行。它可以在觸發器事件執行之前(BEFORE)執行,也可以在觸發器事件執行之後(AFTER)執行或在觸發器事件執行過程中(FOR EACH ROW)執行。
觸發器操作 定義激活觸發器時執行的SQL語句,包括INSERT,DELETE,UPDATE與EXECUTE PROCEDURE
CREATE TRIGGER trigger_name INSERT ON table_name
BEFORE [WHEN (condition)] (trig_action1,trig_action2,...)|
FOR EACH ROW [WHEN (condition)] (trig_action1,trig_action2,...)|
AFTER [WHEN (condition)] (trig_action1,trig_action2,...)|
[DISABLED|ENABLED]
or
CREATE TRIGGER trigger_name INSERT ON table_name
REFERENCING NEW AS correlation_name
FOR EACH ROW [WHEN (condition)] (trig_action1,trig_action2,...)
[BEFORE [WHEN (conditon)](trig_action3,trig_action4,...)]|
[AFTER [WHEN (conditon)] (trig_action3,trig_action4,...)]
[DISABLED|ENABLED]
BEFORE [WHEN (condition)] (trig_action1,trig_action2,...)|
FOR EACH ROW [WHEN (condition)] (trig_action1,trig_action2,...)|
AFTER [WHEN (condition)] (trig_action1,trig_action2,...)|
[DISABLED|ENABLED]
or
CREATE TRIGGER trigger_name DELETE ON table_name
REFERENCING NEW AS correlation_name
FOR EACH ROW [WHEN (condition)] (trig_action1,trig_action2,...)
[BEFORE [WHEN (conditon)](trig_action3,trig_action4,...)]|
[AFTER [WHEN (conditon)] (trig_action3,trig_action4,...)]
[DISABLED|ENABLED]
CREATE TRIGGER trigger_name UPDATE [OF (column,column,...)] ON table_name
BEFORE [WHEN (condition)] (trig_action1,trig_action2,...)|
FOR EACH ROW [WHEN (condition)] (trig_action1,trig_action2,...)|
AFTER [WHEN (condition)] (trig_action1,trig_action2,...)|
[DISABLED|ENABLED]
or
CREATE TRIGGER trigger_name UPDATE [OF (column,column,...)] ON table_name
REFERENCING NEW AS correlation_name OLD AS correlation_name
FOR EACH ROW [WHEN (condition)] (trig_action1,trig_action2,...)
[BEFORE [WHEN (conditon)](trig_action3,trig_action4,...)]|
[AFTER [WHEN (conditon)] (trig_action3,trig_action4,...)]
[DISABLED|ENABLED]
trigger_name 用戶定義的觸發器名,在數據庫中唯一,不超過18個字符,以字母開始。
INSERT是一個觸發器事件,表中插入行時觸發器被激活,一個表只有一個INSERT觸發器,
DELETE是一個觸發器事件,表中刪除行時觸發器被激活,一個表只有一個DELETE觸發器。
UPDATE是一個觸發器事件,表中根性列時觸發器被激活,如果包括列清單,則更新列清單中的列時觸發器被激活。否則更形表中任何列時觸發器被激活,一個表可以有多個UPDATE觸發器。但是列清單要相互排斥。
ENABLED指定啓動觸發器,即執行觸發器事件時即激活觸發器。這是生成觸發器時的默認值。
DISABLED指定生成但關閉觸發器,即執行觸發器事件時不激活觸發器。