2011-11-29 39 views
7

我试图与一些产品的数据一起导入的Magento的SQL转储和我得到这个外键约束错误:外键约束错误1452 - Magento的进口

`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查询。有人可以解释我这个查询做什么,并指导我解决这个问题吗?谢谢。

回答

16

您试图将记录添加到catalog_eav_attribute,但你没有相应的记录在eav_attributeattribute_id

匹配如果您还插入大量数据到eav_attribute,我建议这样做,第一,和那么数据将在catalog_eav_attribute所需的外键前引用它。

article讨论如何使用:

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

如果你不能改变要插入数据的顺序。你只需要确保您的数据如下外键一次,一切都已经被插入到数据库中,你可以重新启用FOREIGN_KEY_CHECKS

+0

谢谢,这个伎俩。还有一些其他的'ALTER TABLE'查询导致了类似的错误,但您的建议帮助我成功导入数据。谢谢。 – Nithin

+0

非常感谢!正试图导入备份并遇到此问题!它为我工作,我设法成功导入数据库! – petsoukos

0

我用了一个数据库修复工具之前,在SQL这样做后:

DROP TABLE catalog_product_flat_1catalog_product_flat_2catalog_product_flat_3;

现在索引已成功构建。

相关问题