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.

Beskrivning description

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.

Entitet
$entityTable
$column
Kategori/produkt
catalog_category_entity/catalog_product_entity
entity_id
Kundprisregel/katalogprisregel
salesrule/catalogrle
rule_id
CMS Page
cms_page
page_id

Orsak

Detta är det förväntade beteendet. Flera rader skapas med funktionen Innehållsfördelning.

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 *End of the Scheduled Update*.

Om du anger ett startdatum med ett slutdatum kommer det att finnas minst tre rader med samma enhets-/regel-/sid-ID. En rad visar enhetens 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;
row_id
entity_id
skapat_in
uppdaterad_in
2049
483
1
1540837826
483
483
1540837826
1540837842
2052
483
1540837826
2147483647
2051
483
1540837842
2147483647

Värdena created_in och updated_in ska följa det här mönstret: Värdet created_in för den aktuella raden är lika med värdet updated_in i föregående rad. Den första raden ska dessutom innehålla created_in = 1 och den sista raden ska innehålla updated_in = 2147483647. (Om det bara finns en rad måste du se created_in=1 och updated_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 anger att det har gjorts schemalagda uppdateringar för innehållsmellanlagring med modulen Magento_Staging, vilket 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.

Upplösning resolution

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

Metodtips för att ändra databastabeller i Commerce Implementeringspellbook

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f