类别产品重新索引不适用于magento 1.8

时间:2015-03-30 11:58:09

标签: php mysql magento indexing

我正在

  

完整性约束违规:1452无法添加或更新子行:   外键约束失败   (database_name.catalog_category_product_index,CONSTRAINT   FK_CAT_CTGR_PRD_IDX_PRD_ID_CAT_PRD_ENTT_ENTT_ID外键   (product_id)REFERENCES catalog_product_entity(entity_id)ON DEL)'在   /home/digitales/public_html/lib/Zend/Db/Statement/Pdo.php:234错误   同时在Magento中重新索引分类产品。

我正在使用命令行中的php indexer.php --reindex catalog_category_product命令重新编制索引。

我尝试了查询 -

SELECT * FROM catalog_category_product WHERE
product_id not in (select entity_id from catalog_product_entity);

给出0结果。

也试过

SELECT * FROM catalog_category_product WHERE 
category_id not in (select entity_id from catalog_category_entity);

也给出0结果。

谢谢, 仁

1 个答案:

答案 0 :(得分:1)

我建议运行Magento DB修复工具,因为这将纠正许多常见的外键约束问题和/或缺少表。

http://www.magentocommerce.com/wiki/1_-_installation_and_configuration/db-repair-tool

您很可能删除了产品,然后在Catalog_Category_Product_Index中留下了导致其失败的内容。首先运行数据库备份,然后在数据库上运行以下选择:

SELECT * FROM Catalog_Category_Product_Index WHERE product_id IN (SELECT entity_id FROM Catalog_Product_Entity)

从数据库中删除这些行,索引过程应该有效。

以下内容可帮助您更详细地了解错误:

阅读FK_CAT_CTGR_PRD_IDX_PRD_ID_CAT_PRD_ENTT_ENTT_ID描述了以下内容:

FK -> Foreign Key
CAT_CTGR_PRD_IDX -> Table Catalog_Category_Product_Index
PRD_ID -> Column Product_ID from Catalog_Category_Product_Index
CAT_PRD_ENTT -> Table Catalog_Product_Entity
ENTT_ID -> Column Entity_ID from Catalog_Product_Entity