OracleのTRUNCATE(切り捨て・全行削除するSQL)

OracleのTRUNCATE TABLE(切り捨て・全削除)

Oralceでデータを全削除するには「TRUNCATE TABLE~」を使います。

「TRUNCATE」と「DELETE」の違い

同じ削除に「DELETE」もありますが、「DELETE」はロールバックできますが、「TRUNCATE」はロールバックできません。

また、パフォーマンスはTRUNCATEの方が良いです。TRUNCATEすると索引も削除されます。

ロールバック パフォーマンス
TRUNCATE × 速い
DELETE 遅い

ロールバックが必要かどうかで「DELETE」か「TRUNCATE」を決定します。

TRUNCATE 構文

--テーブルを全件削除する
TRUNCATE TABLE {テーブル};
empno empname address
A001 佐藤花子 東京都渋谷区1-1-1
A002 山田太郎 東京都渋谷区1-2-15

例1. TRUNCATE TABLE

--テーブルを全件削除する
TRUNCATE FROM emp;
empno empname address

ここではempテーブルのレコードをTRUNCATEで全件を削除しました。

以上、Oracleで全件削除するTRUNCATE TABLEでした。

コメント