Magento Product Flat Data Reindex导致错误

时间:2013-09-24 20:17:23

标签: magento indexing

我无法重新索引Product平面数据,因为我收到以下错误:

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`fpshop/#sql-6101_1484e`, CONSTRAINT `FK_CAT_PRD_FLAT_1_ENTT_ID_CAT_PRD_ENTT_ENTT_ID` FOREIGN KEY (`entity_id`) REFERENCES `catalog_product_entity` (`entity_id`) ON DELETE CASCADE ON UPDATE CA)

任何想要修复的想法?

2 个答案:

答案 0 :(得分:0)

转到您的数据库并检查表catalog_product_entitycatalog_product_flat_1中的所有行,尤其是列entity_id中的值。

很可能某些行缺少必需的值,这意味着有人搞乱了数据库,或者您正在使用模块,这会弄乱数据库。您需要删除那些损坏的行,或者用缺少的值填充它们。

修正提案:

要解决此问题,请尝试在下面运行查询以找到损坏的行:

SELECT a.entity_id FROM catalog_product_flat_1 AS a LEFT JOIN catalog_product_entity AS b ON a.entity_id = b.entity_id WHERE ISNULL(b.entity_id);

然后删除你通过执行

获得的那些行
DELETE FROM catalog_product_flat_1 where entity_id = '123456789';

其中123456789是损坏行的ID。

答案 1 :(得分:0)

您是否尝试过禁用Flat_catalog_category和Flat_catlaog_product然后截断catalog_product_flat表。确保通过执行SET FOREIGN_KEY_CHECKS = 0禁用外键约束检查;在截断之前。一旦这样做,你应该能够通过ssh手动重新索引。有关此问题的详细解决方案如下:http://binarythoughts21.blogspot.in/2013/12/reindexing-problems-in-magento.html