如何在 Redshift 中打开/关闭 IDENTITY_INSERT
Posted
技术标签:
【中文标题】如何在 Redshift 中打开/关闭 IDENTITY_INSERT【英文标题】:How to turn on/off IDENTITY_INSERT in Redshift 【发布时间】:2015-09-12 17:39:12 【问题描述】:我必须在 redshift 中关闭表上的标识并将历史值插入其中。
如果我尝试将值插入标识列,则会出现以下错误
错误:0A000:无法将标识列设置为值
【问题讨论】:
如果你的表只包含历史值,而你指定为标识的列会有重复数据,那么将该列创建为标识有什么用? 无法在 Redshift 表中关闭身份是一个巨大的缺点。这意味着,每次重新加载 Dimension 时,都必须使用新的代理键重新加载 Fact 表。 【参考方案1】:您可以按照简单的两步方法来完成。
-
卸载历史表数据并放入文件@s3
对该文件运行复制命令以通过以下方式加载目标表
在复制命令中指定
explicit_ids
作为参数。
【讨论】:
【参考方案2】:在 Redshift 中无法关闭标识值。如果您的身份顺序与新记录或历史记录无关,您只需插入历史记录,它们就会插入新的身份键值。
【讨论】:
以上是关于如何在 Redshift 中打开/关闭 IDENTITY_INSERT的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 AWS Redshift Data API 使用 Java 执行 SQL? [关闭]
在 SQL(Redshift)中将字符串(43677)转换为日期格式 [关闭]
将数据从 sql server 增量上传到 Amazon Redshift [关闭]