Mehrere Zeilen in der Datenbank für dieselbe Entität
Dieser Artikel bietet eine Lösung für das Problem, bei dem es mehrere Zeilen für dieselbe Entitäts-ID in der Datenbank gibt.
Beschreibung description
Betroffene Produkte und Versionen
Adobe Commerce (alle Versionen)
Problem
Es gibt mehrere Zeilen für dieselbe Entitäts-ID in der Datenbank.
Wenn Sie z. B. beim Ausführen dieser Abfrage eine Liste von Datensätzen mit doppelten Entitäts-IDs erhalten:
SELECT * FROM $entityTable WHERE $column = <$entityID> ORDER BY created_in;
Wo $entityID = ID der Preisregel für Kategorie/Produkt/Warenkorb/Katalogpreisregel/CMS-Seite.
Ursache
Dies ist das erwartete Verhalten. Mehrere Zeilen werden von der Staging-Funktion für Inhalte erstellt.
Wenn Sie ein Startdatum ohne Enddatum angeben, gibt es mindestens zwei Zeilen mit derselben Entitäts-/Regel-/Seiten-ID. Eine Zeile zeigt den ursprünglichen Status der Entität an (die Zeile, in der created_in=1 ), und eine Zeile zeigt das *Ende der geplanten Aktualisierung* an.
Wenn Sie ein Startdatum mit einem Enddatum angeben, gibt es mindestens drei Zeilen mit derselben Entitäts-/Regel-/Seiten-ID. Eine Zeile zeigt den ursprünglichen Status der Entität an (die Zeile, in der created_in=1 ), eine Zeile steht für den *Start der geplanten Aktualisierung* und eine Zeile steht für das *Ende der geplanten Aktualisierung*.
In dieser Abfrage gilt beispielsweise Folgendes:
SELECT row_id, entity_id, created_in, updated_in FROM catalog_product_entity WHERE entity_id = 483 ORDER BY created_in;
Die created_in- und updated_in sollten diesem Muster folgen: Der created_in Wert der aktuellen Zeile ist gleich dem updated_in Wert in der vorherigen Zeile. Außerdem sollte die erste Zeile created_in = 1 und die letzte Zeile updated_in = 2147483647 enthalten. (Wenn es nur eine Zeile gibt, müssen created_in=1 und updated_in=2147483647 angezeigt werden.)
Warum wird der zweite DB-Eintrag (und alle nächsten) in der DB für dieselbe Entität angezeigt?
Der zweite DB-Eintrag (und möglicherweise die nächsten) für die betroffene Entität gibt an, dass Aktualisierungen des Content-Staging mit dem Modul Magento_Staging geplant wurden, wodurch ein zusätzlicher Datensatz für eine Entität in den entsprechenden Tabellen erstellt wird.
Ein Problem tritt nur auf, wenn die Datensätze dieselben Werte für die created_in oder updated_in Spalten aufweisen.
Auflösung resolution
Dies ist das erwartete Verhalten und führt nur zu Problemen, wenn es Diskrepanzen zwischen den Zeilen gibt.
Verwandtes Lesen
Änderungen an Kategorien werden nicht in Support-Wissensdatenbank gespeichert
Best Practices zum Ändern von Datenbanktabellen im Commerce-Implementierungs-Playbook