0

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

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)

任何想法在哪里寻找解决?

4

2 回答 2

0

转到您的数据库并检查 tablecatalog_product_entity或中的所有行catalog_product_flat_1,特别是 column 中的值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在哪里。

于 2013-09-24T21:23:55.950 回答
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

于 2013-12-11T13:40:54.253 回答