Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Resolver conflito ao adicionar chave primária em uma tabela já existente

Bom dia a todos

A minha dúvida surgiu com o exemplo da aula, onde o professor inseriu chave primária em uma tabela já existentes com valores já inseridos.

E a partir daí, supomos que tem mais de 1 objeto com o mesmo valor na coluna que foi indicada como chave primária. Como no exemplo abaixo (produtos diferentes com a mesmo valor de chave primária) :

ProdutoNomePreço
1040107Light - 350 ml - Melancia4.56
1040107Frescor do Verão - 470 ml - Manga5.18

Ao definir a coluna Produto como chave primária, o MySql identificaria esse erro que há mais de 1 objeto com mesmo valor de PK, ou apenas quando formos pesquisar filtrando pelo PK, tendo um resultado duplicado?

Minha outra dúvida, daria para fazer uma query onde identifica se há valores duplicados na coluna que vai se tornar chave primária e arrumar esse conflito na hora de adicionar essa chave primária?

Ps: sei que pode ter ficado meio confuso essa pergunta, se não ficou muito claro, posso tentar explicar de uma forma mais detalhada

1 resposta
solução!

Oie, Murilo! Tudo bem?

Quando você tenta definir uma coluna que possui valores duplicados como chave primária, o MySQL irá sim identificar um erro. Isso ocorre porque a chave primária deve conter valores únicos e não nulos. Portanto, se houver duplicatas, o MySQL não permitirá que essa coluna seja definida como chave primária.

Quanto à sua segunda dúvida, sim, é possível criar uma consulta para identificar valores duplicados antes de definir a chave primária. Para isso, você pode usar a cláusula GROUP BY juntamente com a função HAVING. Por exemplo, se quisermos encontrar valores duplicados na coluna Produto, poderíamos fazer o seguinte:

SELECT Produto, COUNT(*)
FROM tabela_produto
GROUP BY Produto
HAVING COUNT(*) > 1;

Essa consulta retornará todos os valores na coluna Produto que aparecem mais de uma vez.

Para resolver o problema dos valores duplicados antes de adicionar a chave primária, você terá que decidir qual das linhas duplicadas manter e qual excluir. Isso depende muito do contexto dos seus dados e da lógica do seu negócio. Uma vez que você tenha removido os valores duplicados, você poderá adicionar a chave primária sem problemas.

Se a dúvida persistir, estou à disposição aqui no fórum.

Abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software