メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012年12月1日)

TRUNCATE

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

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

構文

Copy
TRUNCATE [ TABLE ] table_name

Parameters

TABLE

オプションキーワード

table_name

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

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

テーブルを切り取った後、テーブルに対して ANALYZE コマンドを実行してください。テーブルを切り取った後、テーブルに対して VACUUM を実行する必要はありません。

使用に関する注意事項

TRUNCATE コマンドは、コマンドが実行されたトランザクションを確定します。したがって、TRUNCATE 操作をロールバックすることはできません。

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

Copy
truncate category;

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

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

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