如何在 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的主要内容,如果未能解决你的问题,请参考以下文章

如何从命令行关闭 RedShift 集群?

如何使用 AWS Redshift Data API 使用 Java 执行 SQL? [关闭]

在 SQL(Redshift)中将字符串(43677)转换为日期格式 [关闭]

将数据从 sql server 增量上传到 Amazon Redshift [关闭]

如何使用 Python 从 OS Windows 将 CSV 文件加载到 Amazon Redshift? [关闭]

Python IRC-Bot Quakenet No Ident Response [关闭]