magento 1.7: product_flat_data kann nicht neu indiziert werden


10

Beim Versuch, meine Magento-Datenbank neu zu indizieren, wird die folgende Fehlermeldung angezeigt.

Unbekannter Fehler des Product Flat Data-Indexprozesses: Ausnahme 'PDOException' mit der Meldung 'SQLSTATE [23000]: Integritätsbedingung> Verletzung: 1452 Untergeordnete Zeile kann nicht hinzugefügt oder aktualisiert werden: Eine Fremdschlüsseleinschränkung schlägt fehl> ( d014505f., CONSTRAINT> FK_CAT_PRD_FLAT_1_ENTT_ID_CAT_PRD_ENTT_ENTT_IDFOREIGN KEY ( entity_id)> REFERENZEN catalog_product_entity(`e) 'in> /www/htdocs/w00f5624/lib/Zend/Db/Statement/Pdo.php:228

Wie behebe ich das?

Antworten:


28

Wie von Sander korrekt angegeben, verursachen gelöschte Produkte, die noch in der flachen Produkttabelle vorhanden sind, diesen Fehler. Das Abschneiden der gesamten Tabelle ist jedoch nicht erforderlich. Sie finden diese Produkte anhand dieser SQL-Abfrage:

SELECT pf1.entity_id
FROM catalog_product_flat_1 pf1
LEFT JOIN catalog_product_entity p ON pf1.entity_id = p.entity_id
WHERE ISNULL( p.entity_id ) 

Sie müssen dann diese Elemente löschen, was mit dieser SQL-Abfrage erfolgen kann:

DELETE pf1.*
FROM catalog_product_flat_1 pf1
LEFT JOIN catalog_product_entity p ON pf1.entity_id = p.entity_id
WHERE ISNULL( p.entity_id ) 

Entnommen von hier: http://www.avs-webentwicklung.de/nc/blog/artikel/magento-fehler-beim-index-aufbau-sofortmassnahmen.html

Fragen Sie mich, wenn Sie weitere Ratschläge benötigen.


Schöne Abfrage, verwenden Sie sie für eine regelmäßige Bereinigungsaufgabe oder nur bei Bedarf?
Sander Mangel

Danke :) Die Credits für den ersten gehören jedoch dem Autor des Links. Ich benutze sie nur, wenn ein solcher Fehler auftritt, meistens wenn Daten direkt aus der Datenbank gelöscht werden, dh mit MAGMI. Und sie sind immer noch selten. Ich musste es noch nicht regelmäßig verwenden, obwohl ich denke, dass es möglich wäre. Wenn Sie Produkte manuell verwalten, kümmert sich Magento beim Speichern / Löschen um die Indextabellen (wenn die Indizes ordnungsgemäß konfiguriert sind).
Simonthesorcerer

Einige Erklärungen finden Sie hier: catgento.com/…
Dmytro Zavalkin

@ Simonthesorcerer Danke, es hilft mir, diesen Fehler zu beheben :)
Bijal Bhavsar

4

Ich hatte dieses Problem schon einmal. Ich habe es gelöst, indem ich die Tabellen product_flat_data abgeschnitten und anschließend neu indiziert habe. Es wird durch nicht vorhandene Produkte verursacht, die noch in der Tabelle vorhanden sind.


Hallo Sander, ich habe die Lösung ausprobiert, aber mir ist nichts passiert. Ich habe auch den catalog_product_flat_1 abgeschnitten, aber der Indexer für Produktattribute funktioniert nicht.
Sarvagya
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.