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

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

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

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

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

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

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

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

1 ответ

Решение
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)
Другие вопросы по тегам