我正在
完整性约束违规: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结果。
谢谢, 仁
答案 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