我在此链接上发现了一些这样做(以及更多)的技巧:
http://www.magentocommerce.com/boards/viewthread/59440/(感谢 transio!)
虽然,对于 Magento 1.6.2.0(我使用),那里的第一个 SQL 技巧(技巧 1 - 自动设置默认基础、拇指、小图像到第一个图像。)需要一点的修改。
倒数第二行有一个AND ev.attribute_id IN (70, 71, 72) 部分。这应该指向在 Magento 1.6.2.0 中可能不再相关的属性 ID。为了解决这个问题,我使用任何 MySQL 查询工具(PHPMyAdmin 或 MySQL 查询浏览器)查看了catalog_product_entity_varchar 表。应该有类似的条目:
value_id, entity_type_id, attribute_id, store_id, entity_id, value
..
146649, 4, 116, 0, 1, '2'
146650, 4, 76, 0, 1, ''
146651, 4, 78, 0, 1, ''
146652, 4, 79, 0, 1, '/B/0/B05-01.jpg'
146653, 4, 80, 0, 1, '/B/0/B05-01.jpg'
146654, 4, 81, 0, 1, '/B/0/B05-01.jpg'
146655, 4, 96, 0, 1, ''
146656, 4, 100, 0, 1, ''
146657, 4, 102, 0, 1, 'container2'
..
我的钱是在三个图像路径组上作为可能的替代品。所以现在生成的 SQL 应该是:
UPDATE catalog_product_entity_media_gallery AS mg,
catalog_product_entity_media_gallery_value AS mgv,
catalog_product_entity_varchar AS ev
SET ev.value = mg.value
WHERE mg.value_id = mgv.value_id
AND mg.entity_id = ev.entity_id
AND ev.attribute_id IN (79, 80, 81) # <-- attribute IDs updated here
AND mgv.position = 1;
所以我致力于它,运行它,然后......转眼间!都修好了!如果需要,您可能还希望将其封装在事务中。但这超出了这个问题的范围。
嗯,这是迄今为止对我有用的修复程序!如果还有更多,请分享!