我无法重新索引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)
任何想要修复的想法?
答案 0 :(得分:0)
转到您的数据库并检查表catalog_product_entity
或catalog_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