Meerdere rijen in de database voor dezelfde entiteit

Dit artikel biedt een oplossing voor het probleem waarbij er meerdere rijen voor dezelfde entiteitsidentiteitskaart in de database zijn.

Beschrijving description

Betrokken producten en versies

Adobe Commerce (alle versies)

Probleem

De database bevat meerdere rijen voor dezelfde entiteit-id.

Bijvoorbeeld, na het ontvangen van een lijst van verslagen met dubbele entiteit IDs wanneer u deze vraag in werking stelt:

SELECT * FROM $entityTable WHERE $column = <$entityID> ORDER BY created_in;

Waarbij $entityID = ID van de pagina Categorie/product/winkelprijsegel/catalogusprijsregel/CMS.

Entiteit
$entityTable
$column
Categorie/Product
catalog_category_entity / catalog_product_entity
entity_id
Prijsregel winkelwagentje / regel catalogusprijs
winkelregel / catalogusregel
rule_id
CMS-pagina
cms_page
page_id

Oorzaak

Dit is het verwachte gedrag. Meerdere rijen worden gemaakt door de functie voor het opslaan van inhoud.

Als u een begindatum zonder een einddatum opgeeft, zijn er minstens twee rijen met dezelfde entiteit-/regel-/pagina-id. Eén rij geeft de oorspronkelijke status van de entiteit aan (de rij waarin created_in=1 ) en één rij geeft het *Einde van de geplande update* aan.

Als u een begindatum opgeeft met een einddatum, zijn er ten minste drie rijen met dezelfde entiteit-/regel-/pagina-id. Eén rij geeft de oorspronkelijke status van de entiteit aan (de rij waarin created_in=1 ), één rij voor het *Begin van de geplande update* en één rij voor het *Einde van de geplande update*.

In deze query ziet u bijvoorbeeld:

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
created_in
updated_in
2049
483
1
1540837826
483
483
1540837826
1540837842
2052
483
1540837826
2147483647
2051
483
1540837842
2147483647

De waarden created_in en updated_in moeten dit patroon volgen: de waarde created_in van de huidige rij is gelijk aan de waarde updated_in in de vorige rij. Bovendien moet de eerste rij created_in = 1 bevatten en de laatste rij updated_in = 2147483647 . (Als er slechts één rij is, moet u created_in=1 en updated_in=2147483647 zien.)

waarom verschijnt de tweede ingang van DB (en alle volgende) in OB voor de zelfde entiteit?

De tweede DB-record (en mogelijk de volgende record) voor de betrokken entiteit geeft aan dat er updates voor het opslaan van inhoud zijn gepland met de module Magento_Staging , die een extra record maakt voor een entiteit in de respectievelijke tabellen.

Er treedt alleen een probleem op als de records dezelfde waarden hebben voor de kolommen created_in of updated_in .

Resolutie resolution

Dit is het verwachte gedrag en leidt alleen tot problemen als er verschillen tussen de rijen zijn.

Gerelateerde lezing

​ de Veranderingen in categorieën worden niet bewaard ​ in onze basis van de steunkennis

​ Beste praktijken voor het wijzigen van gegevensbestandlijsten ​ in het Playbook van de Implementatie van Commerce

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