TRUNCATE TABLE文は、指定した表に存在するすべての行を削除します。これは、すべての行を削除するDELETE文と類似しています。ただし、行を個別に削除するDELETEに比べ、処理が高速に実行されます。
自分のスキーマ内にある表のすべての行を削除する。
TRUNCATE TABLE table
他のスキーマ内にある表のすべての行を削除する。
TRUNCATE TABLE schema.table
表のすべての行を削除したときに、マテリアライズド・ビュー・ログも削除する。
TRUNCATE TABLE table PURGE MATERIALIZED VIEW LOG
表のすべての行を削除したときに、ON DELETE CASCADE参照制約が有効化されていて、この表を参照する子表の行もすべて削除する。
TRUNCATE TABLE table CASCADE
TRUNCATE TABLEはDDL文である。DDL文を実行すると、暗黙的にCOMMITが実行される。このため、TRUNCATE TABLE文で削除した行はロールバックできない。
DELETE | TRUNCATE T ABLE | |
---|---|---|
SQL文の分類 | DML文 | DDL文 |
処理速度 | 遅い | 速い |
トランザクション | コミットされない | コミットされる |
自分のスキーマ内にある表の行を削除するには、とくに権限は必要ない。
他のスキーマ内にある表の行を削除するには、DROP ANY TABLEシステム権限が必要である。