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でした。

コメント