Várias linhas no banco de dados para a mesma entidade
Este artigo fornece uma solução para o problema em que há várias linhas para a mesma ID de entidade no banco de dados.
Descrição description
Produtos e versões afetados
Adobe Commerce (todas as versões)
Problema
Há várias linhas para a mesma ID de entidade no banco de dados.
Por exemplo, depois de receber uma lista de registros com IDs de entidade duplicadas, ao executar esta consulta:
SELECT * FROM $entityTable WHERE $column = <$entityID> ORDER BY created_in;
Onde $entityID = ID da página de categoria/produto/regra de preço do carrinho/regra de preço do catálogo/CMS.
Causa
Esse é o comportamento esperado. Várias linhas são criadas pela funcionalidade Preparo de conteúdo.
Se você especificar uma data de início sem uma data de término, haverá pelo menos duas linhas com a mesma entidade/regra/ID de página. Uma linha indicará o estado original da entidade (a linha em que created_in=1 ), e uma linha indicará o *Fim da Atualização Agendada*.
Se você especificar uma data de início com uma data de término, haverá pelo menos três linhas com a mesma entidade/regra/ID de página. Uma linha indicará o estado original da entidade (a linha em que created_in=1 ), uma linha será para *Início da Atualização Agendada* e uma linha será para *Fim da Atualização Agendada*.
Por exemplo, nesta consulta:
SELECT row_id, entity_id, created_in, updated_in FROM catalog_product_entity WHERE entity_id = 483 ORDER BY created_in;
Os valores created_in e updated_in devem seguir este padrão: O valor created_in da linha atual é igual ao valor updated_in na linha anterior. Além disso, a primeira linha deve conter created_in = 1 e a última linha deve conter updated_in = 2147483647. (Se houver apenas uma linha, você deverá ver created_in=1 e updated_in=2147483647).
Por que a segunda entrada do BD (e todas as próximas) aparece no BD para a mesma entidade?
O segundo registro de BD (e, possivelmente, os próximos) da entidade afetada indica que houve atualizações de Preparo de Conteúdo agendadas usando o módulo Magento_Staging, o que cria um registro adicional para uma entidade nas respectivas tabelas.
Um problema só ocorrerá se os registros tiverem os mesmos valores para as colunas created_in ou updated_in.
Resolução resolution
Esse é o comportamento esperado e só levará a problemas se houver discrepâncias entre as linhas.
Leitura relacionada
As alterações nas categorias não estão sendo salvas na nossa base de dados de conhecimento de suporte
Práticas recomendadas para modificar tabelas de banco de dados no Manual de implementação do Commerce