基本的な手順は
- 対象のテーブルから重複レコードを除いて新しいテーブルにすべてのレコードを重複なしで書き出す
- もとのテーブルを削除
- 新しいテーブル名を変更
しかしこれはあまりスマートな方法を思えなかったので、他に方法はないか、あちこち探し回ってみたものの、うまい方法が見つからなかった。 SQL 文としては、以下のようになる。field_1、field_2(増やしてもよい)は、重複に関係するフィールドである。
CREATE TABLE temp_table as SELECT * FROM main_table GROUP BY field_1, field_2;
DROP TABLE main_table;
ALTER TABLE temp_table RENAME TO main_table;