MySQL - Remover as duplicatas de uma tabela

Janeiro 2017

Para remover as duplicatas em uma tabela dada, definida como segue:

CREATE TABLE IF NOT EXISTS TabTest (     
           cle_prim integer(4) NOT NULL auto_increment,  
           x integer,  
           y integer,  
           z integer,  
           Constraint pk_Tab_test PRIMARY KEY  (cle_prim)                             
);  


Em primeiro lugar, devemos começar a fixar os campos relativos au duplicatas (no nosso caso, os campos x e y):
mysql> select * from TabTest;  
+----------+------+------+------+  
| cle_prim | x    | y    | z    |  
+----------+------+------+------+  
|        1 |    1 |    2 |    3 |  
|        2 |    1 |    2 |    3 |  
|        3 |    1 |    5 |    4 |  
|        4 |    1 |    6 |    4 |  
+----------+------+------+------+  
4 rows in set (0.00 segundos)  

Para remover as duplicatas nos campos x e y execute o comando:
ALTER IGNORE TABLE  TabTest ADD UNIQUE INDEX(x,y);  



Tradução feita por Lucia Maurity y Nouira

Veja também

Artigo original publicado por . Tradução feita por pintuda. Última modificação: 20 de março de 2012 às 22:02 por pintuda.
Este documento, intitulado 'MySQL - Remover as duplicatas de uma tabela', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (br.ccm.net) ao utilizar este artigo.