用於父子結構統計的觸發器

2021-06-07 05:25:21 字數 1041 閱讀 9731

情景:

乙個存在父子關係的表結構 要求插入,更新時 父節點 的 統計出子節點對應欄位的和

表結構:

create table tree_parent_child (

id varchar2(50) not null,

parentid varchar2(50) not null,

need_sum number );

觸發器:

create or replace trigger trgger_parent_child_sum

after insert  or  update on tree_parent_child  

for each row

declare

-- 自發事物

pragma autonomous_transaction;

begin

if inserting then

dbms_output.put_line('--inserting---');

update tree_parent_child t set t.need_sum = (select nvl(sum(need_sum),0)+:new.need_sum from   tree_parent_child where parentid= :new.parentid )

where id= :new.parentid;

commit;

elsif updating then

dbms_output.put_line('----updating--');

update tree_parent_child t set t.need_sum = (select nvl(sum(need_sum),0)+:new.need_sum-:old.need_sum from   tree_parent_child where parentid= :new.parentid )

where id= :new.parentid;

commit;

end if;

end trgger_parent_child_sum;

觸發器及觸發器的作用

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

積分觸發器 mysql 觸發器的使用

將多個資料庫中的某列資料同步時需要用到mysql觸發器,以下可做參考,已簡單測試ok.修改紅棗的積分時觸發 drop trigger if exists u hongzaocount delimiter create trigger u hongzaocount after update on ho...

mysql觸發器的要素 MySQL觸發器

觸發器是一類特殊的事務,可以監視某種資料操作 insert,update,delete 並觸發相關操作 insert,update,delete 觸發器建立之四要素 監視地點 table 監視事件 insert,update,delete 觸發時間 after,before 觸發事件 insert,...