Varias filas en la base de datos para la misma entidad
Este artículo proporciona una solución al problema de que haya varias filas para el mismo ID de entidad en la base de datos.
Descripción description
Productos y versiones afectados
Adobe Commerce (todas las versiones)
Problema
Hay varias filas para el mismo ID de entidad en la base de datos.
Por ejemplo, después de recibir una lista de registros con ID de entidad duplicados al ejecutar esta consulta:
SELECT * FROM $entityTable WHERE $column = <$entityID> ORDER BY created_in;
Donde $entityID = ID de categoría/producto/regla de precio del carro/regla de precio del catálogo/página de CMS.
Causa
Este es el comportamiento esperado. La funcionalidad Ensayo de contenido crea varias filas.
Si especifica una fecha de inicio sin una fecha de finalización, habrá al menos dos filas con la misma entidad, regla o ID de página. Una fila indicará el estado original de la entidad (la fila en la que created_in=1 ) y una fila indicará el *Fin de la actualización programada*.
Si especifica una fecha de inicio con una fecha de finalización, habrá al menos tres filas con la misma entidad, regla o ID de página. Una fila indicará el estado original de la entidad (la fila en la que created_in=1 ), una fila será para *Start of the Scheduled Update* y una fila será para *End of the Scheduled Update*.
Por ejemplo, en esta consulta:
SELECT row_id, entity_id, created_in, updated_in FROM catalog_product_entity WHERE entity_id = 483 ORDER BY created_in;
Los valores created_in y updated_in deben seguir este patrón: el valor created_in de la fila actual es igual al valor updated_in de la fila anterior. Además, la primera fila debe contener created_in = 1 y la última fila debe contener updated_in = 2147483647. (Si solo hay una fila, debe ver created_in=1 y updated_in=2147483647).
¿Por qué aparece la segunda entrada de la base de datos (y todas las siguientes) en la base de datos de la misma entidad?
El segundo registro de base de datos (y, posiblemente, los siguientes) para la entidad afectada indica que se han programado actualizaciones de ensayo de contenido mediante el módulo Magento_Staging, lo que crea un registro adicional para una entidad en las tablas correspondientes.
Solamente se produciría un problema si los registros tienen los mismos valores para las columnas created_in o updated_in.
Resolución resolution
Este es el comportamiento esperado y solo provocará problemas si hay discrepancias entre las filas.
Lectura relacionada
Los cambios en las categorías no se están guardando en nuestra base de conocimiento de soporte
Prácticas recomendadas para modificar tablas de base de datos en el libro de estrategias de implementación de Commerce