我有重新索引产品价格的问题 我能够抓住这个
string(727)“INSERT INTO catalog_product_index_group_price
SELECT gp
。entity_id
,cg
。customer_group_id
,cw
。{{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 cwd
。gp
,{{ 1}}。entity_id
,cg
。customer_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安装上测试了所有模块,一切正常。没有模块升级数据库。
答案 0 :(得分:0)
从中删除LOCKS目录 var /文件夹 删除中的缓存目录 var / folder
如果您仍然遇到问题,可以截断索引表的价格 一些示例是:(您可以查看索引表并添加或删除)
答案 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无法添加或更新子行: 外键约束失败 (
db
。catalog_product_index_group_price
,CONSTRAINTFK_M_CAT_PRD_IDX_GROUP_PRICE_ENTT_ID_M_CAT_PRD_ENTT_ENTT_ID
外国人 KEY(entity_id
)REFERENCEScatalog_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_entity
(entity_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。重新索引强>