我在使用foreigh键编辑mysql中的数据时遇到问题。当我尝试更新外键时,它说:
无法添加或更新子行:外键约束失败(
sadsystem/products
,CONSTRAINTfk_ProductRelationship11
FOREIGN KEY(size_id
)参考product_sizes
(size_id
))
答案 0 :(得分:1)
执行此操作的标准方法是SET CONSTRAINTS DEFERRED
。
然而,MySQL / InnoDB不支持这一点。您必须按照一致性顺序编辑数据:也就是说,首先必须在product_sizes
中创建目标行,然后才能从其他表中引用其size_id
。
(如果您确定知道自己在做什么(例如导入数据时),您也可以暂时停用foreign_key_checks设置,但这样做不检查参考重新启用它时的完整性:任何在禁用时被破坏的约束都将保持不变。)
答案 1 :(得分:0)
当您更新作为外键的一部分(或全部)的列时,完整外键的新值必须引用引用表中的行。该错误消息表示您正在尝试将外键更新为引用表中不存在的值。