Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia
Pessoal tenho uma tabela onde um dos campos é armazendo RG, esse campo não era bloqueado para evitar conteúdo repetido, então tenho vários rg repetidos, porém agora preciso limpar essa tabela e deixar apenas um RG de cada, como faço para eliminar os dados repetidos nessa tabela?
opa beleza
então não vai ter problemas pode eliminar tranquilo, não tem vinculo
Só uma pergunta o campo id que você esta usando seria o meu campo de chave primária auto_increment? NO meu caso ficaria isso:
delete from funcionario where codigo in( select codigo from funcionario where rg in(select distinct(rg) from funcionario))
seria isso?
Velho valeu pela dica mas pesquisei e acabei fazendo da seguinte forma:
ALTER IGNORE TABLE funcionario ADD UNIQUE INDEX(rg);
Achei nesse site:
pô, legal.
por isso eh bom ajudar as pessoas. querendo ou nao agente aprende junto.
nao sabia que isso funcionava em tabelas jah populadas.
tem certeza que você pode simplesmente excluir eles?
não importa com o que estão ligados?
seria simples se não fosse um problema...
o problema com isso é que muito provavelmente em outras tabelas deve haver ligação com os RGs que serão excluidos...
você teria que fazer varios selects para ver os registros dupados e setar para um único id do mesmo RG, para então excluir os RGs...
editando... pensando melhor isso nao vai funcionar como imaginei, mas eh quase isso.... nao esquece de cuidar com as relacoes... se tu excluir antes de verificar, depois será praticamente impossivel manter a integridade.