轉的 觸發器的範例

2021-04-21 11:54:09 字數 1939 閱讀 4052

create

orreplace

trigger

wf_tri_user_list before insert

orupdate

ordelete

on user_list  

for each row    

declare   

uid varchar2(10); useq varchar2(10); asql varchar2(200); namea varchar2(200); nameb varchar2(200);    

begin   

namea:=null;    

nameb:=null;    

if inserting then   

insert into wflow.bpm_org_user(userid,username,diaplayname,seq) values(:new.user_id,:new.user_name,:new.user_realname,:new.user_id);    

dbms_output.put_line('insert trigger is chufale .....');    

end if;    

if updating then   

if (:new.user_name<>:old.user_name) and (:new.user_realname<>:old.user_realname) then   

namea:=:new.user_name;    

nameb:=:new.user_realname;    

asql:='update wflow.bpm_org_user set diaplayname=:1 where username=:2';    

execute immediate asql using namea,nameb;    

else

if :new.user_name<>:old.user_name then   

create or replace trigger wf_tri_user_list before insert or update or delete on user_list    

namea:=:new.user_name;    

asql:='update wflow.bpm_org_user set user_name=:1 where username=:2';    

execute immediate asql using namea;    

else

if :new.user_realname<>:old.user_realname then   

nameb:=:new.user_realname;    

asql:='update wflow.bpm_org_user set diaplayname=:1 where username=:2';    

execute immediate asql using nameb,:old.user_id;    

end if;    

end if;    

end if;    

end if;    

if deleting then   

update wflow.bpm_org_jobusers set userid = 0 where :old.user_id =userid and parentid=-1;    

delete from wflow.bpm_org_jobusers where userid = :old.user_id;    

delete wflow.bpm_org_user where userid=:old.user_id;    

end if;    

commit;    

end;    

貌似csdn不支援sql高亮!-_-

資料庫觸發器的使用範例

觸發器 其是一種特殊的儲存過程。一般的儲存過程是通過儲存過程名直接呼叫,而觸發器主要是 通過事件 增 刪 改 進行觸發而被執行的。其在表中資料發生變化時自動強制執行。常見的觸發器有兩種 after for instead of,用於insert update delete事件。after for 表...

觸發器及觸發器的作用

觸發器是一種用來保障參照完整性的特殊的儲存過程,它維護不同表中資料間關係的有關規則。當對指定的表進行某種特定操作 如 insert,delete或update 時,觸發器產生作用。觸發器可以呼叫儲存過程。建立觸發器的語法 create trigger owner.觸發器名 on owner.表名 f...

觸發器 mysql觸發器

觸發器是一種特殊的儲存過程,它在插入 刪除或修改特定表中的資料時觸發執行,它比資料庫本身標準的功能有更精細和更複雜的資料控制能力。和儲存過程一樣,很少使用。1 觸發器的作用 2 建立觸發器 建立測試環境 mysql create database test db query ok,1 row aff...