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でした。
コメント