| Oracle 触发器的一个实例:
CREATE OR REPLACE TRIGGER trig_ab AFTER INSERT OR DELETE OR UPDATE ON a REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW Begin if updating then update b set flag='2' where RecordNumber=:old.RecordNumber; elsif inserting then insert into b (:old.RecordNumber,'1'); elsif deleting then delete from b where RecordNumber=:old.RecordNumber; end if; End; / 详细的解释:
如何在Oracle中建立这样一些触发器? : 在Oracle中有两张表,一张A,一张B。 : A和B都有RecordNumber字段,编号,其中A的是自动增加的。 : A有两个需要用的字段,RecordNumber和IsProcessed,IsProcessed等于“是”或者 : “否” : B只有两个字段,RecordNumber和Flag,Flag是长度2的字符字段。 : 需要让A在插入一条记录后自动地往B添加一个新的RecordNumber号码相同的记录, : 同时将B的Flag设置为“1” : 需要让A在对A的字段A.IsProcessed修改后自动地把B中相对应的RecordNumber的Fl : ag设置成“2”。 : 需要让A在删除了记录后自动地删除B中相对应的RecordNumber的记录。
|