TRUNCATEはテーブル群から全ての行を素早く削除します。 各テーブルに対して条件指定のないDELETEコマンドの実行と同じ効果を持ちますが、実際にテーブルを走査しない分、このコマンドの方が高速です。 このコマンドは、大きなテーブルを対象とする場合に最も有用です。
空にするテーブルの名前です(スキーマ修飾名も可)。
指定されたテーブル、または、CASCADEにより削除対象テーブルとされたテーブルを参照する外部キーを持つテーブルすべてを自動的に空にします。
外部キーにより対象のテーブルを参照するテーブルのいずれかが空にされない場合、操作を拒否します。 これがデフォルトです。
テーブルの所有者のみがTRUNCATEを行うことができます。
そのテーブルが他のテーブルから外部キーで参照されている場合、1つのTRUNCATEでそれらのテーブルをすべて空にするように指定していない限り、TRUNCATEを使用することはできません。 このような場合は、有効性を検査するためにテーブルスキャンが必要になりますが、テーブルスキャンを行うのであれば、このコマンドの利点がなくなるからです。 CASCADEを使用して、自動的にすべての依存テーブルを含めることができます。 しかし、意図しないデータがなくなる可能性がありますので、このオプションを使用するときには十分に注意してください。
TRUNCATEは、テーブルに存在するユーザ定義のON DELETEトリガを一切実行しません。