RSS

Eliminando/apagando registros duplicados no MySQL

sáb, jan 3, 2009

Diversos, MySQL

Ultimamente tentei usar vários comando MySQL para tentar resolver uma duplicidade em um banco de dados de meu site, eu precisava eliminar duplicidade, apagando um registro e deixando outro.

Procurei pela internet, tentei de tudo, mas eram soluções complicadas, até que achei isto aqui:

1
2
USE `bd`;
ALTER IGNORE TABLE `tabela` ADD UNIQUE INDEX(campos_que_nao_vao_repetir);

Exemplo:

1
2
USE `cadastro`;
ALTER IGNORE TABLE `usuario` ADD UNIQUE INDEX(email);

Ps: Lembrando que após isto, seu campo indicado será único, ou seja, não irá permitir mais duplicidade. Você pode adicionar mais de um campo.

Popularity: 4%

Compartilhe:

  • email
  • Print
  • del.icio.us
  • Digg
  • Facebook
  • Google Bookmarks
  • blogmarks
  • Blogosphere News
  • Live
  • Rec6
  • Reddit
  • StumbleUpon
  • Technorati

Sem artigos relacionados.

, , , , ,

Artigo escrito por:

KILLME - que escreveu 143 artigos em Passo a Passo.


Contate o autor

7 Comentários para este artigo

  1. Tiago Diz:

    olá não entendi sua explicação pois tenho uma tabela de e-mail, e mesmo e-mail esta se repetindo varias vezes ex: tiagoluisi@gmail.com, vamos supor que o mesmo e-mail tenha 10 registros, eu preciso apagar 09 e deixar um só válido, então preciso fazer uma varredura na tabela levantando os e-mails que tem mais que um (duplicado, triplicado, etc…) ai jogar isso dentro de uma view e apagar todos – 1. E eliminar todos os dados duplicados!

    Responder

    KILLME Resposta:

    Tiago, o que este comando acima fará com que o campo que você defina, no caso o email seja unico, então ele irá apagar tudo que for repetido, se tiver 20 registro repetidos ele apagará 19 e deixara 1. Entendeu?

    Lembre-se de fazer backup antes de tentar este precodimento.

    Responder

  2. Tiago Diz:

    como eu faço isso?

    Responder

  3. Edson Diz:

    Excelente! Funcionou legal sem problemas. Valeu pela dica!

    Responder

  4. Lucas Diz:

    Rapaz, esse simples código resolveu meus problemas… Valeu!

    Responder

  5. Maycon Diz:

    Perfeito, funcionou certinho..
    não fossem pessoas assim que compartilham os problemas e soluções.. o que seria de nós?

    hehe

    Abraço!

    Responder

  6. Ulisses Diz:

    Otimo código cara, muito simples e funcionou perfeitamente em minhas tabelas. Estava com este mesmo problema e consegui eliminar todos os meu registro duplicados. vlw

    Responder

  7. Marcus Diz:

    Esta solução é para quando já temos dados duplicados, porém o que eu gostaria de saber era como impedir na hora do cadastro que isso aconteça.

    Responder

Responda