MySQL中的外键约束错误1452 - Magento导入

时间:2011-11-29 06:05:22

标签: mysql magento mysqldump mysql-error-1452

我正在尝试导入magento的sql转储以及一些产品数据,并且我得到了这个外键约束错误:

`ERROR 1452 (23000) at line 231680: Cannot add or update a child row: a foreign key constraint fails:
`magento`.`#sql-b33_27`, CONSTRAINT `FK_CATALOG_COMPARE_ITEM_CUSTOMER_ID_CUSTOMER_ENTITY_ENTITY_ID` FOREIGN KEY (`customer_id`) REFERENCES `customer_entity` (`entity_id`) ON DELETE CASCADE ON )`

这是导致错误的SQL代码:

--
-- Constraints for table `catalog_eav_attribute`
--
ALTER TABLE `catalog_eav_attribute`
  ADD CONSTRAINT `FK_CATALOG_EAV_ATTRIBUTE_ATTRIBUTE_ID_EAV_ATTRIBUTE_ATTRIBUTE_ID` FOREIGN KEY (`attribute_id`) REFERENCES `eav_attribute` (`attribute_id`) ON DELETE CASCADE ON UPDATE CASCADE;

我对sql查询不太满意。有人可以解释一下这个查询的作用并指导我解决这个问题吗?感谢。

2 个答案:

答案 0 :(得分:17)

您正在尝试将记录添加到catalog_eav_attribute,但您在eav_attribute中没有与attribute_id匹配的相应记录

如果您还要将批量数据插入eav_attribute,我建议先执行此操作,然后在catalog_eav_attribute上的外键引用它之前,数据将在表中。

article讨论了如何使用:

SET FOREIGN_KEY_CHECKS = 0;
--Do your update here
SET FOREIGN_KEY_CHECKS = 1;

如果您无法更改插入数据的顺序。在重新启用FOREIGN_KEY_CHECKS

之前,您必须确保在将所有内容插入数据库后,您的数据都会跟随外键。

答案 1 :(得分:0)

我使用了数据库修复工具,之后在SQL中执行了此操作:

DROP TABLE catalog_product_flat_1catalog_product_flat_2catalog_product_flat_3;

现在索引已成功构建。