0

错误:无法添加或更新子行:外键约束失败

以下是创建错误的代码:

ALTER TABLE 'catalog_eav_attribute' 
  ADD CONSTRAINT 'FK_CATALOG_EAV_ATTRIBUTE_ID' 
  FOREIGN KEY ('attribute_id') REFERENCES 'eav_attribute' ('attribute_id)' 
  ON DELETE CASCADE ON UPDATE CASCADE;

我上传了 SQL 的结构,它没有问题,但是当我插入数据时,我得到了上述相关错误。我在某处读到,我预测它是因为糟糕的数据。错误的其他可能性是什么?任何建议或解决方案都会很棒。

4

2 回答 2

0

错误消息意味着您尝试放入 attribute_id 列的任何数字在 eav_attribute.attribute_id 列中尚不存在。

您可以插入 eav_attribute.attribute_id 中已经存在的值?(你可能可以。)

您是否可以通过尝试插入eav_attribute.attribute_id中不存在的值来引发相同的错误?

调和差异,你就完成了。您需要确定 eav_attribute.attribute_id 中不存在哪些属性 ID,然后修复它。

于 2012-07-26T14:20:54.840 回答
0

“对于 InnoDB 以外的存储引擎,MySQL Server 会解析 CREATE TABLE 语句中的 FOREIGN KEY 语法,但不会使用或存储它。”

来自: http ://dev.mysql.com/doc/refman/5.5/en/ansi-diff-foreign-keys.html

我不确定,但如果你的表是 MyISAM 而不是 InnoDB,你的语法可能不起作用。

于 2012-07-26T02:58:57.677 回答