Amazon Redshift は、2025 年 11 月 1 日以降、新しい Python UDF の作成をサポートしなくなります。Python UDF を使用する場合は、その日付より前に UDF を作成してください。既存の Python UDF は引き続き通常どおり機能します。詳細については、ブログ記事
TRUNCATE
テーブルをスキャンせずに、テーブルからすべての行を削除します。この操作は無条件の DELETE 操作に対する代替案ですが、より高速です。TRUNCATE コマンドを実行するには、テーブルへの TRUNCATE アクセス許可が付与されているか、テーブルの所有者であるか、スーパーユーザーである必要があります。テーブルを切り捨てるアクセス許可を付与するには、GRANT コマンドを使用します。
TRUNCATE は DELETE よりもはるかに効率的であり、VACUUM および ANALYZE を必要としません。ただし、TRUNCATE では、その操作を実行するトランザクションがコミットされることに注意してください。
構文
TRUNCATE [ TABLE ] table_name
このコマンドはマテリアライズドビューでも機能します。
TRUNCATE materialized_view_name
パラメータ
- TABLE
-
オプションキーワード
- table_name
-
一時テーブルまたは永続的テーブル テーブルの所有者またはスーパーバイザだけがテーブルを切り取ることができます。
外部キー拘束で参照されるテーブルなど、任意のテーブルを切り取ることができます。
テーブルを切り取った後、テーブルに対して VACUUM を実行する必要はありません。
- materialized_view_name
-
マテリアライズドビュー。
マテリアライズドビューへのストリーミング取り込み に使用されているマテリアライズドビューは切り捨てることができます。
使用に関する注意事項
TRUNCATE コマンドはコマンドが実行されたトランザクションをコミットします。そのため、TRUNCATE 操作をロールバックすることはできず、それ自体がコミットを行うと TRUNCATE コマンドが他の操作にコミットする場合があります。
-
TRUNCATE オペレーションは、次のいずれかに接続された Amazon Redshift ストリーミングマテリアライズドビューで実行されると、排他的ロックを保持します。
1 つの Amazon Kinesis Data Streams
1 つの Amazon Managed Streaming for Apache Kafka トピック
Confluent Cloud Kafka トピックなど、サポートされている外部ストリーム
詳細については、「マテリアライズドビューへのストリーミング取り込み」を参照してください。
例
TRUNCATE コマンドを使って、CATEGORY テーブルからすべての行を削除します。
truncate category;
TRUNCATE オペレーションのロールバック試行。
begin; truncate date; rollback; select count(*) from date; count ------- 0 (1 row)
TRUNCATE コマンドにより自動的に確定したため、ROLLBACK コマンドを実行しても DATE テーブルは空のままです。
次の例では、TRUNCATE コマンドを使用してマテリアライズドビューからすべての行を削除します。
truncate my_materialized_view;
マテリアライズドビューのすべてのレコードが削除され、マテリアライズドビューとそのスキーマはそのまま残ります。クエリでは、マテリアライズドビュー名はサンプルです。