仅做记录,有tableA 与tableB两张表,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(约束名字);