0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Qiita初投稿!PURGE とTRUNCATEの違いを整理してみた【Oracle編】

Posted at

はじめに

こんにちは、Qiita初投稿です!🎉
今回は、Oracleでデータ削除を行う際に使うことがある PURGETRUNCATE の違いについて、調べた内容をまとめてみました。


(要点だけ知りたい方へ)

項目 TRUNCATE PURGE
主な用途 テーブルの全データを高速削除 ゴミ箱(リサイクル)をスキップして完全削除
ロールバック可否 不可 不可(削除済オブジェクトに対して)
トランザクション対応 非対応(即時反映) 非対応
回復可能性 FLASHBACKで復元不可 完全削除なので復元不可能
よく使う場面 一時テーブルの初期化 DROPしたテーブルを即削除したいとき

TRUNCATEとは?

TRUNCATE TABLE users;
テーブルの全データを一瞬で削除

DELETE よりも高速

ロールバック不可

PURGEとは?


PURGE TABLE users;
リサイクルビンを使わず即削除

完全に削除され、復元不可能


🔧 共通点(似ている点)

  • ロールバックできない:どちらも実行すると取り消しできません。
  • トランザクションに対応していない:COMMIT や ROLLBACK の影響を受けず、即時に反映されます。
  • 復元できない:一度実行すると、基本的に元に戻すことはできません(FLASHBACK 不可)。

⚔️ 相違点(違う点)

観点 TRUNCATE PURGE
対象 テーブルの中身(データ) テーブルやオブジェクト自体
よく使う場面 データの初期化・高速削除 DROP後に即座にリサイクルビンを飛ばしたいとき
使用例 TRUNCATE TABLE table_name; PURGE TABLE table_name;
削除対象の行数 全行対象 対象のオブジェクト全体

📝 最後にひとこと

この記事が「TRUNCATE」と「PURGE」の使い分けの参考になれば幸いです!
間違いや補足があればぜひコメントで教えてください

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?