MySQL Добавить индекс Mult-Column с повторными строками

StackOverflow https://stackoverflow.com/questions/3878875

  •  28-09-2019
  •  | 
  •  

Вопрос

Наличие следующей таблицы:

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

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

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

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

Стол имеет около 60 000 строк, так что ... Удаление поля по полю было бы очень сложно.

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

Это было полезно?

Решение

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)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top