0

次のテーブルを持つ:

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 行あるため、フィールドごとに削除するのは非常に困難です。

そのインデックスを適用して、重複したすべての行を削除するにはどうすればよいですか?

4

1 に答える 1

2
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)
于 2010-10-07T05:22:39.120 に答える