

 从补丁 198 开始，Amazon Redshift 将不再支持创建新的 Python UDF。现有的 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="c_loading_default_values"></a>

您可以选择在 COPY 命令中定义一个列列表。如果列列表忽略了表中的某个列，则 COPY 将用 CREATE TABLE 命令中指定的 DEFAULT 选项提供的值加载该列，或加载 NULL（如果未指定 DEFAULT 选项）。

如果 COPY 尝试将 NULL 分配到一个定义为 NOT NULL 的列，COPY 命令将失败。有关分配 DEFAULT 选项的信息，请参阅 [CREATE TABLE](r_CREATE_TABLE_NEW.md)。

当从 Amazon S3 上的数据文件加载时，列列表中的列必须与数据文件中字段的顺序相同。如果数据文件中的某个字段在列列表中没有对应的列，COPY 命令将失败。

从 Amazon DynamoDB 表加载时，顺序并不重要。将弃用与 Amazon Redshift 表中的列不匹配的 Amazon DynamoDB 属性中的任何字段。

当使用 COPY 命令将 DEFAULT 值加载到表中时，将适用以下限制：
+ 如果 [IDENTITY](r_CREATE_TABLE_NEW.md#identity-clause) 列包含在列列表中，则还必须在 [COPY](r_COPY.md) 命令中指定 EXPLICIT\$1IDS 选项，否则 COPY 命令将失败。同样，如果列列表省略了 IDENTITY 列，并且指定了 EXPLICIT\$1IDS 选项，COPY 操作将失败。
+ 由于给定列的已计算 DEFAULT 表达式对所有已加载行是相同的，因此，使用 RANDOM() 函数的 DEFAULT 表达式会向所有行分配相同的值。
+ 包含 CURRENT\$1DATE 或 SYSDATE 的 DEFAULT 表达式将设置为当前事务的时间戳。

有关示例，请参阅 [COPY 示例](r_COPY_command_examples.md)中的“从带有默认值的文件加载数据”。