产品属性无法重新编制索引


8

尝试重新索引“产品属性”时,我收到此错误。谁能建议,可能是什么问题和可能的解决方案

致命错误:消息为'SQLSTATE [23000]的未捕获异常'PDOException':违反完整性约束:1062 E:\ xampp \ htdocs \ magento \ lib \中的密钥'PRIMARY'的重复条目'2828-148-1-471' Zend \ Db \ Statement \ Pdo.php:228堆栈跟踪:#0 E:\ xampp \ htdocs \ magento \ lib \ Zend \ Db \ Statement \ Pdo.php(228):PDOStatement-> execute(Array)#1 E :\ xampp \ htdocs \ magento \ lib \ Varien \ Db \ Statement \ Pdo \ Mysql.php(110):Zend_Db_Statement_Pdo-> _ execute(Array)#2 E:\ xampp \ htdocs \ magento \ app \ code \ core \ Zend \ Db \ Statement.php(291):Varien_Db_Statement_Pdo_Mysql-> _ execute(Array)#3 E:\ xampp \ htdocs \ magento \ lib \ Zend \ Db \ Adapter \ Abstract.php(480):Zend_Db_Statement-> execute(Array) #4 E:\ xampp \ htdocs \ magento \ lib \ Zend \ Db \ Adapter \ Pdo \ Abstract.php(238):Zend_Db_Adapter_Abstract-> query('INSERT INTOca...', Array) #5 E:\xampp\htdocs\magento\lib\Varien\Db\Adapter\Pdo\Mysql.php(428): Zend_Db_Adapter_Pdo_Abstract->query('INSERT INTOca ...',数组)#6 E:\ xampp \ htdocs \ magento \ lib \ Varien \ Db \ Adapter \ Pdo \ Mysql.php(1998):Varien_Db_Adapter_Pdo_Mysql in E:\ xampp \ htdocs \ magento \ lib \ Zend \ Db \ Statement \ Pdo.php,第234行


您是否通过phpmyadmin导入了数据库?
Flyingmana 2014年

不,我只是以编程方式添加产品@Flyinglama
Prashanta

Answers:


15

如何解释错误信息

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '2828-148-1-471' 
for key 'PRIMARY

对于产品属性索引器,这意味着在将记录保存到catalog_product_index_eav_idx表时存在约束错误。

2828-148-1-471 指:

  • 产品实体ID:2828
  • 属性ID:148
  • 商店编号:1
  • 价值:471

问题的可能根源

我假设引起问题的属性是multiselect类型。多次链接到产品的值将导致这种类型的错误。

您可以通过执行以下查询进行检查:

SELECT * FROM `catalog_product_entity_varchar` 
where entity_id = 2828 and attribute_id = 148 and store_id = 1;

我猜想ID 471将在列中多次列出value。每个ID仅应在该列中列出一次。

您是否正在使用进口商将产品数据添加到Magento?


是的,这是inchoo的简单产品程序化导入
Prashanta

任何对此的解决方案,是的,它是多选的
Prashanta 2014年

7

以下解决方案对我有用,可能对其他人有帮助:

2828-148-1-471指的是:

产品实体ID:2828属性ID:148商店ID:1值:471

只需打开ID为2828的产品并保存并再次重新编制索引即可。

那可以解决你的问题


批量更新有什么解决方案?
DarkCowboy

3

我明白了,这是multi select下拉属性的一个问题,在我的脚本中,有时多次添加相同的属性会导致错误,如果将来需要帮助,请将此答案发布给某人

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.