

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 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
```

## Parameters
<a name="r_TRUNCATE-parameters"></a>

TABLE   
選用的關鍵字。

 *table\$1name*   
暫時性或持久性資料表。只有資料表的擁有者或超級使用者可將它截斷。  
您可以截斷任何資料表，包括外部索引鍵限制條件中參考的資料表。  
您不需要在截斷資料表之後將它清空。

 *materialized\$1view\$1name*   
具體化視觀表。  
您可以截斷用於 [將擷取串流至具體化視觀表](materialized-view-streaming-ingestion.md) 的具體化視觀表。

## 使用須知
<a name="r_TRUNCATE_usage_notes"></a>
+  TRUNCATE 命令會遞交其執行所在的交易；因此您無法轉返 TRUNCATE 操作，且 TRUNCATE 命令可能會在遞交本身的同時，遞交其他操作。
+ TRUNCATE 操作在連線至下列任一項的 Amazon Redshift 串流具體化視觀表上執行時，會保留獨佔鎖定：
  +  Amazon Kinesis Data Stream 
  +  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)
```

DATE 資料表會在 ROLLBACK 命令之後保持空白，因為 TRUNCATE 命令會自動遞交。

下列範例會使用 TRUNCATE 命令，刪除具體化視觀表中的所有資料列。

```
truncate my_materialized_view;
```

它會刪除具體化視觀表中的所有記錄，並保持具體化視觀表及其結構描述不變。在查詢中，具體化視觀表名稱是一個範例。