Magento Reindex价格错误

时间:2015-08-03 18:59:29

标签: magento product reindex

我有重新索引产品价格的问题 我能够抓住这个

string(727)“INSERT INTO catalog_product_index_group_price SELECT gpentity_idcgcustomer_group_idcw。{{1} },MIN(IF(gp.website_id = 0,ROUND(gp.value * cwd.rate,4),gp.value))FROM website_id AS catalog_product_entity_group_price INNER JOIN gp AS customer_group ON gp.all_groups = 1 OR(gp.all_groups = 0 AND gp.customer_group_id = cg.customer_group_id)INNER JOIN cg AS core_website ON gp.website_id = 0或gp.website_id = cw.website_id INNER JOIN cw AS catalog_product_index_website ON cw.website_id = cwd.website_id WHERE(cw.website_id!= 0)GROUP BY cwdgp,{{ 1}}。entity_idcgcustomer_group_id ON DUPLICATE KEY UPDATE cw = VALUES(website_id),price = VALUES({{ 1}})“

在catalog_product_index_group_price中有标准的4列,但现在我有5列 5 value_type varchar(48)utf8_general_ci没有固定的

我不知道它出现在哪里或是什么产生它。我已经在新的Magento安装上测试了所有模块,一切正常。没有模块升级数据库。

2 个答案:

答案 0 :(得分:0)

从中删除LOCKS目录     var /文件夹 删除中的缓存目录     var / folder

如果您仍然遇到问题,可以截断索引表的价格 一些示例是:(您可以查看索引表并添加或删除

  • truncate catalog_product_index_price_bundle_idx;
  • truncate catalog_product_index_price_bundle_opt_idx;
  • truncate catalog_product_index_price_bundle_sel_idx;
  • truncate catalog_product_index_price_cfg_opt_agr_idx;
  • truncate catalog_product_index_price_cfg_opt_idx;
  • truncate catalog_product_index_price_downlod_idx;
  • truncate catalog_product_index_price_final_idx;
  • truncate catalog_product_index_price_idx;
  • truncate catalog_product_index_price_opt_agr_idx;
  • truncate catalog_product_index_price_opt_idx;

答案 1 :(得分:0)

我发现这篇文章是因为我也面临着'catalog_product_price'的重新索引。我通过这样做来修复它:

<强> 1。启用数据库记录

修改lib/Varien/Db/Adapter/Pdo/Mysql.php

protected $_debug更改为true;

<强> 2。再次重新索引损坏的索引并从var / debug / pdo_mysql.log中提取整个SQL查询+错误

你可能会看到类似这样的东西

  

EXCEPTION异常'PDOException',消息'SQLSTATE [23000]:   完整性约束违规:1452无法添加或更新子行:   外键约束失败   (dbcatalog_product_index_group_price,CONSTRAINT   FK_M_CAT_PRD_IDX_GROUP_PRICE_ENTT_ID_M_CAT_PRD_ENTT_ENTT_ID外国人   KEY(entity_id)REFERENCES catalog_product_entity)'in   /www/sites/example.com/files/html/lib/Zend/Db/Statement/Pdo.php:228

第3。通过查看表结构获取有关失败约束的更多信息:

运行show create table catalog_product_index_group_price;

你可能会看到类似这样的东西

  

约束   FK_M_CAT_PRD_IDX_GROUP_PRICE_ENTT_ID_M_CAT_PRD_ENTT_ENTT_ID外国人   KEY(entity_id)参考catalog_product_entityentity_id)   ON DELETE CASCADE ON UPDATE CASCADE,

<强> 4。找出catalog_product_entity表中缺少哪个entity_id

运行SELECT cpigp.* FROM catalog_product_entity_group_price cpigp LEFT JOIN catalog_product_entity p ON cpigp.entity_id = p.entity_id WHERE ISNULL(p.entity_id);

<强> 5。备份损坏的表并删除缺少的产品

运行DELETE FROM catalog_product_entity_group_price WHERE entity_id=XXXXX;

<强> 6。重新索引