2010-10-07 24 views
0

ayant la table suivante:Mysql ajouter index mult-colonne avec des lignes répétées

id -> incremental 
field_1 -> foreignkey 
field_2 -> foreignkey 

Je veux ajouter l'index suivant

ALTER TABLE my_table ADD unique index(field_1, field_2); 

Comment j'ai jamais (en raison d'une validation de la mauvaise application) I J'ai beaucoup de lignes répétées (par répété je veux dire même champ_1 et même champ_2, ayant juste id comme différence)

La table a environ 60 000 lignes donc ... supprimer champ par champ serait très difficile.

Comment puis-je appliquer cet index et supprimer toutes les lignes dupliquées?

Répondre

2
create table mytable2 like mytable; 

insert into mytable2 
select max(id), field_1, field_2 
from mytable 
group by field_1, field_2; 

rename table mytable to mytable_old, mytable2 to mytable; 

ALTER TABLE my_table ADD unique index(field_1, field_2)