

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、[ブログ記事](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)を参照してください。

# TRUNCATE
<a name="r_TRUNCATE"></a>

テーブルをスキャンせずに、テーブルからすべての行を削除します。この操作は無条件の DELETE 操作に対する代替案ですが、より高速です。TRUNCATE コマンドを実行するには、テーブルへの TRUNCATE アクセス許可が付与されているか、テーブルの所有者であるか、スーパーユーザーである必要があります。テーブルを切り捨てるアクセス許可を付与するには、[GRANT](r_GRANT.md) コマンドを使用します。

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

## 構文
<a name="r_TRUNCATE-synopsis"></a>

```
TRUNCATE [ TABLE ] table_name
```

このコマンドはマテリアライズドビューでも機能します。

```
TRUNCATE materialized_view_name
```

## パラメータ
<a name="r_TRUNCATE-parameters"></a>

TABLE   
オプションキーワード 

 *table\$1name*   
一時テーブルまたは永続的テーブル テーブルの所有者またはスーパーバイザだけがテーブルを切り取ることができます。  
外部キー拘束で参照されるテーブルなど、任意のテーブルを切り取ることができます。  
テーブルを切り取った後、テーブルに対して VACUUM を実行する必要はありません。

 *materialized\$1view\$1name*   
マテリアライズドビュー。  
[マテリアライズドビューへのストリーミング取り込み](materialized-view-streaming-ingestion.md) に使用されているマテリアライズドビューは切り捨てることができます。

## 使用に関する注意事項
<a name="r_TRUNCATE_usage_notes"></a>
+  TRUNCATE コマンドはコマンドが実行されたトランザクションをコミットします。そのため、TRUNCATE 操作をロールバックすることはできず、それ自体がコミットを行うと TRUNCATE コマンドが他の操作にコミットする場合があります。
+ TRUNCATE オペレーションは、次のいずれかに接続された Amazon Redshift ストリーミングマテリアライズドビューで実行されると、排他的ロックを保持します。
  +  1 つの Amazon Kinesis Data Streams 
  +  1 つの Amazon Managed Streaming for Apache Kafka トピック 
  +  Confluent Cloud Kafka トピックなど、サポートされている外部ストリーム 

  詳細については、「[マテリアライズドビューへのストリーミング取り込み](materialized-view-streaming-ingestion.md)」を参照してください。

## 例
<a name="r_TRUNCATE-examples"></a>

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;
```

マテリアライズドビューのすべてのレコードが削除され、マテリアライズドビューとそのスキーマはそのまま残ります。クエリでは、マテリアライズドビュー名はサンプルです。