TRUNCATE
名前
TRUNCATE -- 1テーブルまたはテーブル群を空にする
概要
TRUNCATE [ TABLE ] name [, ...]
説明
TRUNCATEはテーブル群から全ての行を素早く削除します。
各テーブルに対して条件指定のないDELETEコマンドの実行と同じ効果を持ちますが、実際にテーブルを走査しない分、このコマンドの方が高速です。
このコマンドは、大きなテーブルを対象とする場合に最も有用です。
パラメータ
- name
空にするテーブルの名前です(スキーマ修飾名も可)。
注釈
テーブルの所有者のみがTRUNCATEを行うことができます。
そのテーブルが他のテーブルから外部キーで参照されている場合、1つのTRUNCATEでそれらのテーブルをすべて空にするように指定していない限り、TRUNCATEを使用することはできません。
このような場合は、有効性を検査するためにテーブルスキャンが必要になりますが、テーブルスキャンを行うのであれば、このコマンドの利点がなくなるからです。
TRUNCATEは、テーブルに存在するユーザ定義のON DELETEトリガを一切実行しません。
例
bigtableテーブルおよびfattableテーブルを空にします。
TRUNCATE TABLE bigtable, fattable;
互換性
標準SQLにはTRUNCATEコマンドはありません。