2、觸發器的類型有:
觸發器類型:
1、 語句觸發器
2、 行觸發器
3、INSTEAD OF觸發
4、 系統條件觸發器
5、 用戶事件觸發器
2.1、語句級觸發器.(語句級觸發器對每個DML語句執行一次)
是在表上或者某些情況下的視圖上執行的特定語句或者語句組上的觸發器。能夠與INSERT、UPDATE、DELETE或者組合上進行關聯。但是無論使用什麼樣的組合,各個語句觸發器都只會針對指定語句激活一次。比如,無論update多少行,也只會調用一次update語句觸發器。
實例:
createorreplacetriggertri_test
afterinsertorupdateordeleteontest
begin
ifupdatingthen
dbms_output.put_line('修改');
elsifdeletingthen
dbms_output.put_line('刪除');
elsifinsertingthen
dbms_output.put_line('插入');
endif;
end;
2.2、行級觸發器.(行級觸發器對DML語句影響的每個行執行一次)
實例一:
觸發器
行級觸發器
createtabletest(sidnumber,snamevarchar2(20));--創建一個表
createsequenceseq_test;--創建序列
createorreplacetriggertri_test--創建觸發器
beforeinsertorupdateofsidontest
foreachrow--觸發每一行
begin
ifinsertingthen
selectseq_test.nextvalinto:new.sidfromdual;
else
raise_application_error(-20020,'不允許更新ID值!');--中斷程序
endif;
end;