外键列更新

Foreign key column update

有两个table:

tblInvestType(Parent table) and
tblInvestTypeComp(Child table)

tblInvestTypeComp.type_code 是引用 tblInvestType.type_code 的外键。

我如何创建触发器,以便每当 parent table 的 (tblInvestType) type_code 列的值有任何更新时,同样反映在 child table 的 (tblInvestTypeComp) type_code 列?

注意:所有这些都在 Oracle 中。

你可以试试下面的方法

set constraint <constraint name> deferred;
update primary key ...
update foreign key column to match the updated primary key....
commit;

为此,必须将外键定义为可延迟的

这是糟糕的设计。主键应该是不可变的。但是鉴于您有一个要求,这里有一个解决方案:

Create trigger upd_trg after update on tblInvestType
 for each row
Begin
    Update tblInvestTypeComp
    Set type_code =:new.type_code
    Where type_code =:old.type_code;
End;

这是我得到的解决方案:

create or replace trigger tblInvestType_update_type_code
after update of type_code on tblInvestType
for each row
begin
update tblInvestTypeComp
set type_code = :new.type_code
where type_code = :old.type_code;
end;