Redshift中的COPY CSV命令是否按标题中定义的顺序加载?

问题描述 投票:0回答:1

我有一些代码将CSV从S3拉入Redshift表。我遇到的问题是,如果CSV按特定列顺序存储,则复制命令与CSV标题中的列顺序不匹配。

因此,如果我有一个带有id|age|name列的CSV并且我有一个带有id|name|age列的Redshift表,它将尝试以CSV标题顺序提取数据。因此,在这种情况下,它会尝试将名称CSV列拉入Redshift中的age列,这会导致类型错误。

我的查询是:

copy schema.#tmp from <s3file> 
iam_role <iamrole> 
acceptinvchars 
truncatecolumns
IGNOREBLANKLINES
ignoreheader 1
                  COMPUPDATE OFF
                  STATUPDATE OFF
                  delimiter ','
                  timeformat 'auto'
                  dateformat 'auto';

我是否需要在copy命令中定义列顺序以匹配两者?

csv amazon-s3 amazon-redshift
1个回答
4
投票

COPY忽略文件中的列名;列从左到右匹配。

但是您可以在COPY语句中指定列列表。用它来告诉PostgreSQL文件中列的顺序。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.