MySQLは、繰り返し行を備えたマルチコラムインデックスを追加します

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を意味し、違いとして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)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top