情景:
乙個存在父子關係的表結構 要求插入,更新時 父節點 的 統計出子節點對應欄位的和
表結構:
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,...