外键约束

时间:2010-10-02 06:17:30

标签: mysql

我在使用foreigh键编辑mysql中的数据时遇到问题。当我尝试更新外键时,它说:

  

无法添加或更新子行:外键约束失败(sadsystem/products,CONSTRAINT fk_ProductRelationship11 FOREIGN KEY(size_id)参考product_sizessize_id ))

2 个答案:

答案 0 :(得分:1)

执行此操作的标准方法是SET CONSTRAINTS DEFERRED

然而,MySQL / InnoDB不支持这一点。您必须按照一致性顺序编辑数据:也就是说,首先必须在product_sizes中创建目标行,然后才能从其他表中引用其size_id

(如果您确定知道自己在做什么(例如导入数据时),您也可以暂时停用foreign_key_checks设置,但这样做检查参考重新启用它时的完整性:任何在禁用时被破坏的约束都将保持不变。)

答案 1 :(得分:0)

当您更新作为外键的一部分(或全部)的列时,完整外键的新值必须引用引用表中的行。该错误消息表示您正在尝试将外键更新为引用表中不存在的值。