create or replace trigger tr_insert_test1
before insert on test1
for each row
begin
insert into test2 values(:new.id,:new.name);
end;
当使用 insert into test1(id,name) values('123','huxl');的时候 test2表中也多了一条记录
:new --为一个引用最新的列值;
:old --为一个引用以前的列值; 这两个变量只有在使用了关键字 "FOR EACH ROW"时才存在.且update语句两个都有,而insert只有:new ,delect 只有:old;
before表示在操作完成前触发, after表示在完成后触发
下面完成我们的业务
3.步骤:
a. 见将历史数据同步到netb_order表中
update netb_order o set o.replycontent= (select up.replycontent
from
netb_PackagesNewSetUp up where up.id=o.businessid);
update netb_order o set o.replycontent= (select ps.reply
from
netb_phonenewsetup ps where ps.id=o.businessid);
update netb_order o set o.replycontent= (select sr.reply
from
netb_selfhoodreq sr where sr.selfhoodreqid=o.businessid);
update netb_order o set o.replycontent= (select ci.reply
from
netb_cards_info ci where ci.id=o.businessid);
update netb_order o set o.replycontent= (select bo.reply
from
netb_basicorder bo where bo.id=o.businessid);
2. 为订单从表添加触发器
drop trigger xxx
触发器需要一个一个执行
create or replace trigger tr_netb_PackagesNewSetUp
after update of replycontent on netb_PackagesNewSetUp
for each row
begin
update netb_order set replycontent=:new.replycontent where businessid=:old.id;
end;
create or replace trigger tr_netb_phonenewsetup
after update of reply on netb_phonenewsetup
for each row
begin
update netb_order set replycontent=:new.reply where businessid=:old.id;
end;
create or replace trigger tr_netb_selfhoodreq
after update of reply on netb_selfhoodreq
for each row
begin
update netb_order set replycontent=:new.reply where businessid=:old.selfhoodreqid;
end;
create or replace trigger tr_netb_cards_info
after update of reply on netb_cards_info
for each row
begin
update netb_order set replycontent=:new.reply where businessid=:old.id;
end;
create or replace trigger tr_netb_basicorder
after update of reply on netb_basicorder
for each row
begin
update netb_order set replycontent=:new.reply where businessid=:old.id;
end;