メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012年12月1日)

デフォルトの列値をロードする

任意で COPY コマンドに列のリストを定義できます。このリストに含まれていないテーブルの列については、COPY を実行すると、CREATE TABLE コマンドで指定された DEFAULT オプションにより提供される値か、DEFAULT オプションが指定されていない場合は NULL がロードされます。

COPY を実行し、NOT NULL として定義されている列に NULL を割り当てようとすると、COPY コマンドは失敗します。DEFAULT オプションの割り当てに関する詳細は、「CREATE TABLE」を参照してください。

Amazon S3 のデータファイルからロードするとき、リストの列がデータファイルのフィールドと同じ順序になっている必要があります。リストに指定された列に該当するフィールドがデータファイルにない場合、COPY コマンドは失敗します。

Amazon DynamoDB テーブルからロードする場合、順序は関係ありません。Amazon Redshift テーブルの列に一致しない Amazon DynamoDB 属性のフィールドは破棄されます。

COPY コマンドを使って DEFAULT 値をテーブルにロードするとき、次の制限が適用されます。

  • IDENTITY 列がリストに含まれる場合、EXPLICIT_IDS オプションも COPY コマンドに指定する必要があります。指定しない場合、COPY コマンドは失敗します。同様に、IDENTITY 列をリストから除外し、EXPLICIT_IDS オプションを指定すると、COPY 操作は失敗します。

  • 指定の列に対して評価される DEFAULT 式はロードされるすべての行で同じであるため、RANDOM() 関数を使用する DEFAULT 式はすべての行に同じ値を割り当てます。

  • CURRENT_DATE または SYSDATE を含む DEFAULT 式は現在の処理のタイムスタンプに設定されます。

例えば、「COPY の例」の「デフォルト値を使用してファイルのデータをロードする」を参照してください。