create or replace trigger dm1_log
after insert or update or delete on xjpd.emp
declare
oper emp_log.oper%type;
begin
if inserting then
oper:='insert';
elsif deleting then
oper:='delete';
else
oper:='update';
end if;
insert into emp_log values(user,sysdate,oper);
end;
現在往emp表中insert一條資料,emp表和emp_log表分別展示如下:
emp_log:emp新增完資訊後,執行觸發器自動記錄資訊。
(2)行級觸發器:
行級觸發器是指一條sql語句影響的每一行觸發一次。
:new代表新插入的行。
:old代表當前歷史行。
new 只出現在insert和update時,old只出現在update和delete時。
for each row:對錶的每一行觸發器執行一次。如果沒有這一選項,則只對整個表執行一次。
資料庫分別建立兩表a、b,具體如下所示:
需求:向a表新增、修改或刪除資訊時,同時對b表執行操作。
create or replace trigger trigger1
before insert or update or delete
on a
for each row
begin
-- 向b表插入資料
if inserting then
insert into b values (:new.id,:new.name);
-- 修改b表資料
elsif updating then
update b set name= :new.name where id = :old.id;
-- 刪除b表資料
elsif deleting then
delete from b where id = :old.id;
end if;
end;
現在向a表insert一條資料,展示a表、b表如下:
b:表a新增資訊之前,執行觸發器自動記錄資訊到表b
補充:
1.檢視所有觸發器
select * from user_triggers;
2.禁用和啟動觸發器
//禁用觸發器:
alter trigger 觸發器名稱 disable
//啟用觸發器:
alter trigger 觸發器名稱 enable
Oracle觸發器解析
作用 每當乙個特定的資料操作語句 insert update delete 在指定的表上發出時,oracle自動地執行觸發器中定義的語句序列。第乙個觸發器 每當成功插入新員工後,自動列印 成功插入新員工 觸發器的單詞 trigger 建立觸發器 create trigger saynewemp af...
oracle之觸發器
1 oracle中觸發器是當進行操作時觸發事情,進行處理。例如進行對資料表進行插入 更新和刪除時進行觸發事情處理。定義觸發器的是 create or replace trigger before after insert update delete on 資料庫表名 for each row 這是表...
Oracle之觸發器
資料庫觸發器是乙個與表相關聯的 儲存的pl sql程式。每當乙個特定的資料操作語句 insert,update,delete 在指定表上發出時,oracle自定地執行觸發器中定義的語句序列。簡單的來說就當某個條件成立的時候,觸發器裡面所定義的語句就會被自動的執行,因此觸發器不需要人為的去呼叫,也不能...