

 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/)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建立 範本
<a name="r_CREATE_TEMPLATE"></a>

為 Amazon Redshift 命令建立可重複使用的範本，例如 [COPY](r_COPY.md)。範本存放可在多個命令執行中參考的常用參數，可改善一致性並降低手動參數規格。

範本不需要跨多個操作重複指定相同的格式參數，而來源路徑、目標資料表和授權可能因操作而異。

## 所需權限
<a name="r_CREATE_TEMPLATE-privileges"></a>

若要建立範本，您必須具有下列其中一項：
+ 超級使用者權限
+ 您要建立範本之結構描述的 CREATE 許可，或您要建立範本之資料庫中結構描述的 CREATE 範圍許可

## 語法
<a name="r_CREATE_TEMPLATE-synopsis"></a>

```
CREATE [ OR REPLACE ] TEMPLATE [database_name.][schema_name.]template_name
FOR COPY [ AS ]
[ [ FORMAT ] [ AS ] data_format ]
[ parameter [ argument ] [ , ... ] ];
```

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

 *或 取代*   
如果指定資料庫和結構描述中已存在同名的範本，則會取代現有的範本。您只能將範本取代為定義相同操作類型的新範本，例如 COPY。您必須擁有必要的權限才能取代範本。

*database\_name*  
（選用） 建立範本的資料庫名稱。如果未指定，則會在目前的資料庫中建立範本。  
如果資料庫或結構描述不存在，則不會建立範本，且陳述式會傳回錯誤。您無法在系統資料庫 `template0`、、 `template1` `padb_harvest` 或 中建立範本`sys:internal`。

*schema\_name*  
（選用） 建立範本的結構描述名稱。如果未指定，則會在目前的結構描述中建立範本。  
如果指定結構描述名稱，則會在該結構描述中建立新的範本 （假設建立者可存取該結構描述）。範本名稱必須是該結構描述的唯一名稱。

*template\_name*  
要建立的範本名稱。或者，範本名稱可以符合資料庫和結構描述名稱的資格。在下列範例中，資料庫名稱為 `demo_database`，結構描述名稱為 `demo_schema`，範本名稱為 `test`。如需有效名稱的相關資訊，請參閱 [名稱與識別碼](r_names.md)。  

```
CREATE TEMPLATE demo_database.demo_schema.test FOR COPY AS CSV;
```

COPY  
指定建立範本的 Redshift 命令類型。目前，僅支援 COPY 命令。

【 【 格式】 【 AS 】 *data\_format* 】   
這是選擇性的參數。這會指定 COPY 操作的資料格式。

【 *參數* 【 引數 】】  
指定 redshift 命令的任何有效參數。  
例如，COPY 命令的範本可包含：  
+ [資料格式參數](copy-parameters-data-format.md)
+ [檔案壓縮參數](copy-parameters-file-compression.md)
+ [資料轉換參數](copy-parameters-data-conversion.md)
+ [資料載入操作](copy-parameters-data-load.md)
如需支援參數的完整清單，請參閱 [COPY](r_COPY.md)命令。

### 使用須知
<a name="create_template-usage-notes"></a>
+ 根據預設，所有使用者對 PUBLIC 結構描述都具有 CREATE 和 USAGE 權限。若要不允許使用者在資料庫的 PUBLIC 結構描述內建立物件，請使用 REVOKE 命令來移除該權限。
+ 當範本和命令中都存在參數時，命令參數優先。
+ 範本是資料庫物件，並遵循標準 Redshift 物件命名和許可規則。如需有效名稱的相關資訊，請參閱 [名稱與識別碼](r_names.md)。
+ 範本不能包含[COPY](r_COPY.md)命令的資訊清單檔案規格。

### 限制
<a name="create_template-limitations"></a>
+ 建立範本時，必須至少指定一個參數。
+ 排除參數 – 範本中不能包含命令特定的參數，例如來源路徑、目標資料表、授權憑證和資訊清單檔案規格。這些參數必須在實際命令中指定。
+ 每個叢集的範本上限 – 每個叢集最多可以建立 1，000 個範本。此限制適用於叢集中所有資料庫和結構描述的範本總數。
+ 跨資料庫參考 – 範本無法跨資料庫參考。
+ 資料共用 – 範本不能包含在資料共用中。範本必須在需要它們的每個叢集中個別建立。

## 範例
<a name="r_CREATE_TEMPLATE-examples"></a>

下列範例會建立 COPY 命令的範本 

```
CREATE TEMPLATE test_schema.demo_template
FOR COPY
AS
FORMAT JSON 'auto'
NULL AS ''
MAXERROR 100;
```

使用 [顯示範本](r_SHOW_TEMPLATE.md)取得範本的定義：

```
SHOW TEMPLATE test_schema.demo_template;
CREATE OR REPLACE TEMPLATE dev.test_schema.demo_template FOR COPY AS FORMAT AS JSON 'auto' NULL '' MAXERROR 100;
```

 查詢[SYS\_REDSHIFT\_TEMPLATE](SYS_REDSHIFT_TEMPLATE.md)系統檢視以取得範本的詳細資訊。

```
SELECT * FROM SYS_REDSHIFT_TEMPLATE;

database_name | schema_name | template_name | template_type |        create_time         |     last_modified_time     | owner_id | last_modified_by | template_parameters 
---------------+-------------+---------------+---------------+----------------------------+----------------------------+----------+------------------+---------------------
 dev           | test_schema | demo_template |             1 | 2025-12-17 20:06:01.944171 | 2025-12-17 20:06:01.944171 |        1 |                1 | {
    "JSON": "auto",
    "MAXERROR": 100,
    "NULL": ""
}
```