Mysql добавить многостолбцовый индекс с повторяющимися строками - PullRequest
0 голосов
/ 07 октября 2010

Имея следующую таблицу:

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

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

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

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

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

1 Ответ

2 голосов
/ 07 октября 2010
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)
...