Produktattribute konnten nicht neu indiziert werden


8

Ich erhalte diesen Fehler, während ich versuche, "Produktattribute" neu zu indizieren. Kann jemand vorschlagen, was das Problem und mögliche Lösung sein könnte

Schwerwiegender Fehler: Nicht erfasste Ausnahme 'PDOException' mit Meldung 'SQLSTATE [23000]: Verletzung der Integritätsbedingung: 1062 Doppelter Eintrag' 2828-148-1-471 'für Schlüssel' PRIMARY '' in E: \ xampp \ htdocs \ magento \ lib \ Zend \ Db \ Statement \ Pdo.php: 228 Stapelverfolgung: # 0 E: \ xampp \ htdocs \ magento \ lib \ Zend \ Db \ Anweisung \ Pdo.php (228): PDOStatement-> execute (Array) # 1 E. : \ xampp \ htdocs \ magento \ lib \ Varien \ Db \ Anweisung \ 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 ... ', Array) # 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 in Zeile 234


Haben Sie die Datenbank über phpmyadmin importiert?
Flyingmana

Nein, ich füge die Produkte nur programmgesteuert hinzu @Flyinglama
Prashanta

Antworten:


15

So interpretieren Sie die Fehlermeldung

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

Im Fall des Produktattributindexers bedeutet dies, dass beim Speichern eines Datensatzes in der catalog_product_index_eav_idxTabelle ein Einschränkungsfehler auftritt .

2828-148-1-471 bezieht sich auf:

  • Produktentitäts-ID: 2828
  • Attribut-ID: 148
  • Geschäfts-ID: 1
  • Wert: 471

Möglicher Ursprung des Problems

Ich gehe davon aus, dass das Attribut, das Probleme verursacht, vom Typ Multiselect ist. Ein Wert, der mehrfach mit einem Produkt verknüpft ist, verursacht diese Art von Fehler.

Sie können dies überprüfen, indem Sie die folgende Abfrage ausführen:

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

Ich vermute, dass die ID 471 mehrmals in der Spalte aufgeführt wird value. Jede ID sollte nur einmal in dieser Spalte aufgeführt werden.

Verwenden Sie einen Importeur, um Magento Produktdaten hinzuzufügen?


Ja, es ist Inchoos einfacher programmatischer Produktimport
Prashanta

Jede Lösung dafür, ja, es ist eine Mehrfachauswahl
Prashanta

7

Die folgende Lösung hat für mich funktioniert und kann anderen helfen:

2828-148-1-471 bezieht sich auf:

Produktentitäts-ID: 2828 Attribut-ID: 148 Speicher-ID: 1 Wert: 471

Öffnen Sie einfach das Produkt mit der ID 2828 und speichern Sie es und indizieren Sie es erneut.

das kann Ihr Problem lösen


Welche Lösung für Bulk-Updates?
DarkCowboy

3

Ich habe es verstanden, es war ein Problem mit den Dropdown-Attributen für Mehrfachauswahl. In meinem Skript wurde manchmal dasselbe Attribut mehrmals hinzugefügt, was zu Fehlern führte und diese Antwort für jemanden veröffentlichte, der in Zukunft Hilfe benötigt

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.