Plusieurs lignes de la base de données pour la même entité
Cet article fournit une solution au problème où il existe plusieurs lignes pour le même ID d’entité dans la base de données.
Description description
Produits et versions concernés
Adobe Commerce (Toutes les versions)
Problème
Plusieurs lignes correspondent au même ID d'entité dans la base de données.
Par exemple, après réception d'une liste d'enregistrements avec des identifiants d'entité en double lorsque vous exécutez cette requête :
SELECT * FROM $entityTable WHERE $column = <$entityID> ORDER BY created_in;
Où $entityID = ID de la catégorie/du produit/de la règle de prix de panier/de la règle de prix de catalogue/de la page CMS.
Cause
Il s’agit du comportement attendu. Plusieurs lignes sont créées par la fonctionnalité d’évaluation de contenu.
Si vous spécifiez une date de début sans date de fin, il y aura au moins deux lignes avec le même ID d’entité/règle/page. Une ligne indique l’état d’origine de l’entité (la ligne dans laquelle created_in=1 ), et une ligne indique la *Fin de la mise à jour planifiée*.
Si vous spécifiez une date de début avec une date de fin, il y aura au moins trois lignes avec le même ID d’entité/règle/page. Une ligne indique l’état d’origine de l’entité (la ligne dans laquelle created_in=1 ), une ligne correspond au *Début de la mise à jour planifiée* et une ligne correspond au *Fin de la mise à jour planifiée*.
Par exemple, dans cette requête :
SELECT row_id, entity_id, created_in, updated_in FROM catalog_product_entity WHERE entity_id = 483 ORDER BY created_in;
Les valeurs created_in et updated_in doivent suivre le modèle suivant : La valeur created_in de la ligne active est égale à la valeur updated_in de la ligne précédente. En outre, la première ligne doit contenir created_in = 1 et la dernière ligne doit contenir updated_in = 2147483647. (S’il n’y a qu’une seule ligne, vous devez voir created_in=1 et updated_in=2147483647).
Pourquoi la deuxième entrée de la base de données (et toutes les suivantes) apparaît-elle dans la base de données pour la même entité ?
Le deuxième enregistrement de la base de données (et, éventuellement, les suivants) pour l'entité concernée indique qu'il y a eu des mises à jour de l'évaluation de contenu planifiées à l'aide du module Magento_Staging, ce qui crée un enregistrement supplémentaire pour une entité dans les tables respectives.
Un problème ne se produit que si les enregistrements ont les mêmes valeurs pour les colonnes created_in ou updated_in.
Résolution resolution
Il s’agit du comportement attendu qui ne provoquera des problèmes que s’il existe des incohérences entre les lignes.
Lecture connexe
Les modifications apportées aux catégories ne sont pas enregistrées dans notre base de connaissances d’assistance
Recommandations relatives à la modification des tables de base de données dans le manuel Commerce Implementation Playbook