首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Redshift维度表中创建默认值行以防止报表中的空值

问在Redshift维度表中创建默认值行以防止报表中的空值
EN

Stack Overflow用户
提问于 2016-06-22 17:02:43
回答 1查看 802关注 0票数 1

我正在通过数据仓库模式和默认数据负载(用于初始开发的MySQL )移植到Redshift进行生产。初始默认数据是在维度表中作为一行创建的,按照每个http://www.kimballgroup.com/2010/10/design-tip-128-selecting-default-values-for-nulls/,自动增量列中设置的值为-1。

在将模式移到Redshift时,应将该列从auto_increment更改为identity,以保留数据库主键生成,但这不再允许插入身份列返回

代码语言:javascript
复制
ERROR: cannot set an identity column to a value
SQL state: 0A000

ETL加载作业应该负责在此实例中自动递增维度键,还是还有其他任务来创建insert值?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-28 22:38:17

据我所知,重写自动生成的值不适用于INSERT。如果有可能将数据上载到S3,则可以使用Redshift的COPY命令将数据从S3加载到表中。让我们指定选项EXPLICIT_IDS,例如:

代码语言:javascript
复制
COPY your_table from 's3://path_to_your/data.csv' CREDENTIALS '' EXPLICIT_IDS;

来自文档

如果要用表的源数据文件中的显式值覆盖自动生成的值,请将EXPLICIT_IDS与具有标识列的表一起使用。如果命令包括列列表,则该列表必须包含标识列才能使用此参数。EXPLICIT_IDS值的数据格式必须与CREATE定义指定的标识格式匹配。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37974289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档