

 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="copy-parameters-column-mapping"></a>

根據預設，COPY 會依欄位在資料檔案中出現的同樣順序，將值插入目標資料表的欄。如果預設欄順序不適用，您可以指定欄清單或使用 JSONPath 表達式，將來源資料欄位映射至目標欄。
+ [Column List](#copy-column-list)
+ [JSONPaths File](#copy-column-mapping-jsonpaths)

## 資料欄清單
<a name="copy-column-list"></a>

您可以指定逗號分隔的欄名稱清單，以便將來源資料欄位載入特定的目標欄。COPY 陳述式中的欄可以是任何順序，但從純文字檔 (例如 Amazon S3 儲存貯體) 載入時，欄的順序必須符合來源資料的順序。

從 Amazon DynamoDB 資料表載入時，順序並不重要。COPY 命令會將擷取自 DynamoDB 資料表之項目中的屬性名稱，與 Amazon Redshift 資料表中的欄名稱進行比對。如需詳細資訊，請參閱[從 Amazon DynamoDB 資料表載入資料](t_Loading-data-from-dynamodb.md)

 欄清單的格式如下。

```
COPY tablename (column1 [,column2, ...]) 
```

如果從欄清單中省略目標資料表的某一欄，COPY 會載入目標欄的 [DEFAULT](r_CREATE_TABLE_NEW.md#create-table-default) 表達式。

如果目標欄沒有預設值，COPY 會嘗試載入 NULL。

如果 COPY 嘗試將 NULL 指派給定義為 NOT NULL 的欄，COPY 命令會失敗。

如果欄清單包含 [IDENTITY](r_CREATE_TABLE_NEW.md#identity-clause) 欄，則還必須指定 [EXPLICIT_IDS](copy-parameters-data-conversion.md#copy-explicit-ids)；如果 IDENTITY 欄遭省略，則不能指定 EXPLICIT\_IDS。如果未指定欄清單，則命令的行為會如同已指定完整、按順序的欄清單一樣，而如果也未指定 EXPLICIT\_IDS，則會 IDENTITY 欄會遭到省略。

如果資料欄是使用 GENERATED BY DEFAULT AS IDENTITY 定義的，則可以複製它。值是利用您提供的值來產生或更新。EXPLICIT\_IDS 不是必要選項。COPY 不會更新身分高浮水印。如需詳細資訊，請參閱[GENERATED BY DEFAULT AS IDENTITY](r_CREATE_TABLE_NEW.md#identity-generated-bydefault-clause)。

## JSONPaths 檔案
<a name="copy-column-mapping-jsonpaths"></a>

從 JSON 或 Avro 格式的資料檔案載入時，COPY 會自動將 JSON 或 Avro 來源資料中的資料元素映射至目標資料表的欄。它會比對 Avro 結構定義中的欄位名稱與目標資料表或欄清單中的欄名稱，以達到這個目標。

在某些情況下，您的欄名稱和欄位名稱不相符，或者您需要映射至資料階層中的更深層級。在這些情況下，您可以使用 JSONPaths 檔案將 JSON 或 Avro 資料元素明確地映射至欄。

如需詳細資訊，請參閱[JSONPaths 檔案](copy-parameters-data-format.md#copy-json-jsonpaths)。