Note to Self

自分用のメモ置き場

MySQLで副問い合わせによって取得した複数のキーでデータを削除する

MySQLで副問い合わせによって取得した複数のキーでデータを削除する

MySQLで副問い合わせによって取得した複数のキーでデータを削除したい

主キー(id)に serialNo を追加し、複合主キーにしようとしたが、serialNo に同じ値が入っており、主キー制約を変更できなかった

重複する項目を削除する際に、少し悩んだのでメモしておく

-- 重複行を特定し、主キーだけのビューを作成
CREATE VIEW v_dummy AS SELECT id, serialNo FROM t_hoge GROUP BY id, serialNo HAVING COUNT(*) > 1;

-- 重複行を削除
DELETE FROM t_hoge WHERE (id, serialNo) IN (SELECT id, serialNo FROM v_dummy);

-- ビューを削除
DROP VIEW v_dummy;


一度ビューを作成する理由は、副問合せで利用したテーブルをそのまま削除することができないため