Flera rader i databasen för samma enhet
Den här artikeln innehåller en lösning på problemet där det finns flera rader för samma enhets-ID i databasen.
Berörda produkter och versioner:
- Adobe Commerce (alla versioner)
Problem
Det finns flera rader för samma enhets-ID i databasen.
När du till exempel har tagit emot en lista över poster med duplicerade enhets-ID:n när du kör den här frågan:
SELECT * FROM $entityTable WHERE $column = <$entityID> ORDER BY created_in;
Där $entityID = ID
av kategori/produkt/kundvagnsprisregel/katalogprisregel/CMS-sida.
Orsak
Detta är det förväntade beteendet. De flera raderna skapas med funktionen Innehållsmellanlagring:
-
Om du anger ett startdatum utan ett slutdatum kommer det att finnas minst två rader med samma enhets-/regel-/sid-ID. En rad visar entitetens ursprungliga tillstånd (den rad i vilken
created_in=1
) och en rad anger slutet på den schemalagda uppdateringen. -
Om du anger ett startdatum med ett slutdatum kommer det att finnas minst tre rader med samma enhets-/regel-/sid-ID. En rad visar entitetens ursprungliga tillstånd (den rad i vilken
created_in=1
), en rad för Start av den schemalagda uppdateringen och en rad för End of the Scheduled Update.
I den här frågan:
SELECT row_id, entity_id, created_in, updated_in FROM catalog_product_entity WHERE entity_id = 483 ORDER BY created_in;
- Värdena
created_in
ochupdated_in
ska följa det här mönstret: Värdetcreated_in
för den aktuella raden är lika med värdetupdated_in
i föregående rad. Den första raden ska dessutom innehållacreated_in = 1
och den sista raden ska innehållaupdated_in = 2147483647
. (Om det bara finns en rad måste du secreated_in=1
ochupdated_in=2147483647
.)
Varför visas den andra DB-posten (och alla de efterföljande) i DB för samma entitet?
- Den andra DB-posten (och eventuellt de nästa) för den berörda entiteten betyder att det finns schemalagda uppdateringar för innehållsmellanlagring med modulen
Magento_Staging
, som skapar ytterligare en post för en entitet i respektive register.
Ett problem uppstår bara om posterna har samma värden för kolumnerna created_in
eller updated_in
.
Lösning
Detta är det förväntade beteendet och leder bara till problem om det finns skillnader mellan raderna.
Relaterad läsning
- Ändringar i kategorier sparas inte i vår kunskapsbas för support
- Duplicera poster i katalogtabellen efter redigering av slutdatumet för en schemauppdatering i vår kunskapsbas för support
- Metodtips för att ändra databastabeller i Commerce Implementeringspellbook