MySQLは、繰り返し行を備えたマルチコラムインデックスを追加します
-
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を意味し、違いとしてidだけを持っています)
テーブルには約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)
所属していません StackOverflow