Oracle触发器在MIS 开发中的应用
after delete on bj_ysd_local
for each row
begin
delete from bj_ysd_remote@dblink remote
where x1=:old.x1
end;
5.用数据库触发器完成瀑布式删除操作
在某些情况下,当要删除一条记录时,该记录是与外键有关的另外一张基表上的记录时,这个删除操作必须在模型中进行传递,否则会出现大量的冗长数据,仍以cumstomer 和order基表为例,当从customer中删除一个客户时,order基表中所有相关记录也应当删除。
Create or replace trigger trig_cust
Before delete on customer
For each row
Begin
Delete from order;
Where cu_no=old.cu_no;
End;
6.用触发器完成动态数据的操作
在涉及如何实现动态库存的问题时,可用触发器解决。仓库有验收、出库、调拨、报废、退料、让售等这些数据必须与以前的库存相加减,才能完成动态库存操作。本文仅以验收单触发器为例,其它的结构雷同。它们涉及到两个基表:bi_ysd(验收单),Bj_kcb(当前库存表),前者的表结构(rq(日期),ysdh(验收单号), bjbm(备件编码),yssl(验收数量),ysdj(验收单价)),后者的表结构为(bjbm(备件编码),dqkcl(当前库存量),dqkcje(当前库存金额))触发器如下: