載入預設的欄位值 - Amazon Redshift

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

載入預設的欄位值

您可以選擇性地在COPY命令中定義資料欄清單。如果資料表中的資料欄從資料欄清單中省略, COPY會使用CREATETABLE命令中指定的DEFAULT選項提供的值載入資料欄,NULL或者如果未指定DEFAULT選項,則使用 載入資料欄。

如果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表達式會將相同的值指派給所有的資料列。

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

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