Oracle有主外键数据修改

仅做记录,有tableAtableB两张表,tableA (noA)主键字段是tableB(noB)字段的外键

当修改tableA  noA的时候会违背约束

解决方案一: 

        可以将子表tableB noB字段改成任意一个存在于tableB表中的值,然后修改tableA 中noA 为新值 然后再将tableB的noB修改成新值;

解决方案二:

 解除主外键约束,然后进行修改,最后启用主外键约束  具体步骤如下:

--(1)解除约束
alter table tableB  disable constraint   FK_tableB_noB(约束名字);

--(2)操作
update tableA set noA = 'new Value' where noA = 'old Value';
update tableB set noB = 'new Value' where noB = 'old Value';

--(3)启用约束
alter table tableB enable constraint FK_tableB_noB(约束名字);

         

你可能感兴趣的:(数据库)