外键约束
我在使用外键来编辑mysql中的数据时遇到了问题。当我尝试更新的外键,它说:外键约束
不能添加或更新子行,外键约束失败(
sadsystem/products
,约束fk_ProductRelationship11
外键(size_id
)参考文献product_sizes
(size_id
))
这样做的标准方法是SET CONSTRAINTS DEFERRED
。
但是,MySQL/InnoDB不支持这一点。您将不得不按照一致性顺序编辑数据:也就是说,首先必须在product_sizes
之前创建目标行,然后才能从其他表中引用size_id
。
(如果你一定要知道自己在做什么(如导入时的数据),也可以暂时禁用foreign_key_checks设置,但这并没有检查参照完整性,当您重新启用它:在禁用时破坏的任何约束都将保持打破状态。)
更新外键的一部分(或全部)列时,新外键的新值必须引用被引用表中的一行。该错误消息是说您正尝试将外键更新为参考表中不存在的值。
我现在很困惑。你可以看到我关于编辑外键的详细问题。请花时间阅读和研究我在那里发布的代码。非常感谢你 – 2010-10-02 06:57:46
http://stackoverflow.com/questions/3844591/inner-join-passing-data-from-table-for-edit – 2010-10-02 06:57:56
请赐教更多。我不擅长mysql。我这样做是因为它是我的小编程主题的一部分。我如何在phpmyadmin中执行这些操作? – 2010-10-02 06:56:15