2010-10-07 1 views
0

Имея в следующей таблице:Mysql добавить индекс мульт-столбец с повторяющимися рядами

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

Я хочу, чтобы добавить следующий индекс

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

Как когда-либо у меня есть (из-за плохой проверки приложений) I имеют много повторяющихся строк (повторенным я имею в виду одно и то же поле_1 и одно и то же поле_2, имеющее только идентификатор как разность)

Таблица имеет около 60 000 строк, поэтому удаление поля по полю было бы очень трудным.

Как я могу применить этот индекс и удалить каждую дублируемую строку?

ответ

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)