create or replace trigger emp
--before 表示對操作前的觸發(fā)器
-- after 表示對操作后的觸發(fā)器
--每張表最多可建立12個觸發(fā)器
--before inset
--before insert for each row
--after insert
--after insert for each row-
--before uPdate
--before uPdate for each row
--after uPdate
--after uPdate for each row
--before uPdate
--before uPdate for each row
--after uPdate
--after uPdate for each row
--執(zhí)行的順序是:#1. 執(zhí)行before語句級的觸發(fā)器,對于受語句影響的每一行:
-- #2. 執(zhí)行級觸發(fā)器,執(zhí)行DML語句
--執(zhí)行after行級的觸發(fā)器
--#3. 執(zhí)行 after語句級的觸發(fā)器
before delete on aaa --刪除操作前aaa表的觸發(fā)器
for each row --對表的每一行觸發(fā)器執(zhí)行一次。如果沒有這一選項,則只對整個表執(zhí)行一次。
declare
begin
/*如果插入的任然是aaa表的話,會出現(xiàn):第 1 行出現(xiàn)錯誤:
ORA-04091: 表 QUERY.AAA 發(fā)生了變化, 觸發(fā)器/函數(shù)不能讀它
ORA-06512: 在 "QUERY.EMP", line 4 (QUERY表示user,line表示行數(shù),EMP表示觸發(fā)器名稱)
ORA-04088: 觸發(fā)器 'QUERY.EMP' 執(zhí)行過程中出錯*/
/*將修改前的數(shù)據(jù)插入到日志表aaa_tmp里去,以供監(jiān)督使用*/
insert into aaa_tmp(AID,ANAME,PRICE)
values(:old.AID,:old.ANAME,:old.PRICE);--:old表示原來的數(shù)據(jù),
--:new表示插入的新數(shù)據(jù)
end emp;
本文出自:億恩科技【mszdt.com】
服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|