TRUNCATE文 【TRUNCATE statement】
概要
TRUNCATE文(TRUNCATE statement)とは、リレーショナルデータベース(RDB)の操作を行うSQL(Structured Query Language)の構文の一つで、指定したテーブルのすべての行を削除するもの。「TRUNCATE TABLE テーブル名」というシンプルな構文で、テーブル名で示したテーブルから即座にすべての行を削除し、空のテーブルになる。ほとんどの処理系では「TRUNCATE テーブル名」とTABLEを省略して書くこともできる。
DELETE文のようにWHERE句で条件を指定して一部だけ削除する(一部を残す)ことはできないが、条件判定を行わないため高速に削除を実行できる。一方、DROP文(DROP TABLE)はテーブルそのものが削除され、何も残らない。
外部キーで参照されているテーブルに対して実行することはできない。一部のDBMSではTRUNCATE文による削除はロールバックすることができない。操作がトランザクションログに記録されないため、レプリケーションなどの対象となっているテーブルには実行できないDBMSもある。
(2020.8.9更新)