例子Create Or Replace Trigger Trig_Caseupdate_AM
 Before Update On Tameter
For Each Row
/******************************************************************************
   PURPOSE:       REVISIONS:
   Ver        Date        Author           Description
   ---------  ----------  ---------------  ------------------------------------
   1.0        2003-11-14      Fred Zhang       1. Created this trigger.
******************************************************************************/
Begin
   If :Old.DBBH<>:New.DBBH Then
        Update Tuser Set DBBH=:New.DBBH Where DBBH=:Old.DBBH;
Update Tameter_Rt Set DBBH=:New.DBBH Where DBBH=:Old.DBBH;
Update Tameter_Rt_Archive Set DBBH=:New.DBBH Where DBBH=:Old.DBBH;
Update Tline Set CBBH=:New.DBBH Where CBBH=:Old.DBBH;
Update Tline Set LLBH1=:New.DBBH Where LLBH1=:Old.DBBH;
Update Tline Set LLBH2=:New.DBBH Where LLBH2=:Old.DBBH;
End If;
   Exception
     When Others Then
       -- Consider logging the error and then re-raise
       Raise;
End Trig_Caseupdate_AM;

解决方案 »

  1.   

    创建一个包
    创建一个行级触发器
    将你更新的:new.id放入包中的变量v_1中
    然后再创建一个语句级触发器用v_1更新子表的id
      

  2.   

    如果你不对父表进行查询的话,只建一个触发器也可以
    将:new.id付给一个变量,然后用它来更新子表
      

  3.   

    create or replace trigger trg_name 
        after update on t_father
        for each row
    begin
        update t_child a set a.id=:new.id where a.id=:old.id;
    end;--这样就可以了.