Oracle之觸發器解析說明

2021-08-29 20:24:30 字數 1982 閱讀 8275

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自定地執行觸發器中定義的語句序列。簡單的來說就當某個條件成立的時候,觸發器裡面所定義的語句就會被自動的執行,因此觸發器不需要人為的去呼叫,也不能...