[SQL] 一括DELETE

Oracleでのみ実行済み。

今回使った方法↓

DELETE FROM "TABLE NAME" A
 WHERE ("条件1", "条件2", "条件3") IN 
       (SELECT "条件1", "条件2", "条件3"
       	  FROM "TABLE NAME"
         WHERE A."絞込条件A1" = B."絞込条件B1" AND ...)

似たような方法↓

DELETE FROM "TABLE NAME" A
 WHERE EXISTS  
       (SELECT *
       	  FROM "TABLE NAME"
         WHERE A."絞込条件A1" = B."絞込条件B1" AND ...)

結果はどっちも同じのはず!
(私が実行した結果では同じだった)

2個目の方が個人的にいいかなーって思ったけど、先に1個目で作っちゃったから作り直すのが面倒だったとかそんなことはないですよ?
– 修正 –
2個目の使用を推奨。
大量データを削除する際に1個目よりも2個目が早い。

This entry was posted in Oracle, SQL, 備忘録. Bookmark the permalink.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です