載入預設的欄位值 - Amazon Redshift

自 2025 年 11 月 1 日起,Amazon Redshift 將不再支援建立新的 Python UDFs。如果您想要使用 Python UDFs,請在該日期之前建立 UDFs。現有的 Python UDFs將繼續如常運作。如需詳細資訊,請參閱部落格文章

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

載入預設的欄位值

您可以選擇性地在您的 COPY 命令中定義資料欄清單。如果已從資料欄清單忽略資料表中的資料欄,COPY 將使用 DEFAULT 選項提供的值 (在 CREATE TABLE 命令中指定),或如果未指定 DEFAULT 選項,則使用 NULL 來載入資料欄。

如果 COPY 嘗試將 NULL 指派給定義為 NOT NULL 的欄,COPY 命令會失敗。如需指派 DEFAULT 選項的詳細資訊,請參閱CREATE TABLE

從 Amazon S3 上的資料檔案載入時,資料欄清單中的資料欄必須採用與資料檔案中的欄位相同的順序。如果資料檔案中的欄位在資料欄清單中沒有對應的資料欄,COPY 命令失敗。

從 Amazon DynamoDB 資料表載入時,順序並不重要。Amazon DynamoDB 屬性中不符合 Amazon Redshift 資料表中資料欄的所有欄位則會遭捨棄。

下列限制適用於使用 COPY 命令載入 DEFAULT 值至資料表時:

  • 如果 IDENTITY 資料欄包括在資料欄清單中,也必須在 COPY 命令中指定 EXPLICIT_IDS 選項,否則 COPY 命令將會失敗。相同地,如果從資料欄清單省略 IDENTITY 資料欄,並且指定了 EXPLICIT_IDS 選項,則 COPY 操作將會失敗。

  • 因為針對指定資料欄評估的 DEFAULT 表達式對所有載入資料列都是相同的,使用 RANDOM() 函數的 DEFAULT 表達式將指派所有資料列相同的值。

  • 包含 CURRENT_DATE 或 SYSDATE 的 DEFAULT 表達式會設為目前交易的時間戳記。

如需範例,請參閱COPY 範例中的「從具有預設值的檔案載入資料」。