7

我正在尝试导入 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 查询不太满意。有人可以解释一下这个查询的作用并指导我解决这个问题吗?谢谢。

4

2 回答 2

17

您正在尝试将记录添加到中,但在该匹配项catalog_eav_attribute中没有相应的记录eav_attributeattribute_id

如果您还向 中插入批量数据eav_attribute,我建议先这样做,然后数据将在catalog_eav_attribute需要引用它的外键之前位于表中。

本文讨论了如何使用:

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

如果您无法更改插入数据的顺序。将所有内容插入数据库后,您只需确保数据遵循外键,然后才能重新启用FOREIGN_KEY_CHECKS

于 2011-11-29T06:10:59.057 回答
0

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

删除表 catalog_product_flat_1, catalog_product_flat_2, catalog_product_flat_3;

现在索引已成功构建。

于 2013-07-15T19:21:58.690 回答