Amazon Redshift
データベース開発者ガイド

TRUNCATE

テーブルをスキャンせずに、テーブルからすべての行を削除します。この操作は無条件の DELETE 操作に対する代替案ですが、より高速です。TRUNCATE コマンドを実行するには、テーブルの所有者またはスーパーユーザーである必要があります。

TRUNCATE は DELETE よりもはるかに効率的であり、VACUUM および ANALYZE を必要としません。ただし、TRUNCATE では、その操作を実行するトランザクションがコミットされることに注意してください。

構文

TRUNCATE [ TABLE ] table_name

パラメータ

TABLE

オプションキーワード

table_name

一時テーブルまたは永続的テーブルテーブルの所有者またはスーパーバイザだけがテーブルを切り取ることができます。

外部キー拘束で参照されるテーブルなど、任意のテーブルを切り取ることができます。

テーブルを切り取った後、テーブルに対して VACUUM を実行する必要はありません。

使用に関する注意事項

TRUNCATE コマンドはコマンドが実行されたトランザクションをコミットします。そのため、TRUNCATE 操作をロールバックすることはできず、それ自体がコミットを行うと TRUNCATE コマンドが他の操作にコミットする場合があります。

TRUNCATE コマンドを使って、CATEGORY テーブルからすべての行を削除します。

truncate category;

TRUNCATE オペレーションのロールバック試行。

begin; truncate date; rollback; select count(*) from date; count ------- 0 (1 row)

TRUNCATE コマンドにより自動的に確定したため、ROLLBACK コマンドを実行しても DATE テーブルは空のままです。