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