错误:无法添加或更新子行:外键约束失败
以下是创建错误的代码:
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的结构并且它没有问题,但是当我插入数据时,我得到了上述相关错误。我在某个地方阅读并且我预测它是因为糟糕的数据。错误的其他可能性是什么?任何建议或解决方案都会很棒。
答案 0 :(得分:0)
“对于InnoDB以外的存储引擎,MySQL Server在CREATE TABLE语句中解析FOREIGN KEY语法,但不使用或存储它。”
来自:http://dev.mysql.com/doc/refman/5.5/en/ansi-diff-foreign-keys.html
我不确定,但如果你的表是MyISAM而不是InnoDB,你的语法可能不起作用。
答案 1 :(得分:0)
错误消息表示您尝试放入attribute_id列的任何数字在eav_attribute.attribute_id列中尚不存在。
您可以在eav_attribute.attribute_id中插入 已经存在的值吗? (你可能可以。)
您是否可以通过尝试在eav_attribute.attribute_id中插入不的值来激发相同的错误?
协调差异,你就完成了。您需要确定eav_attribute.attribute_id中不存在哪些属性ID,并修复它。