gpt4 book ai didi

sql - AWS Redshift 身份列插入 - 新记录的身份值不大于以前的最大身份值

转载 作者:行者123 更新时间:2023-12-05 07:26:16 25 4
gpt4 key购买 nike

这是我在 stackoverflow 上的第一篇文章!如果我未能正确遵循“提问”政策,请让我在这里直接道歉。

话虽如此,我遇到了 AWS Redshift 中“身份”列的问题,与以下帖子有关,但问题不同:

Identity Column not respected on Insert into() (Amazon Redshift)

问题(下面提供的示例值“只是示例”,用于说明问题):“如果我有一个 max(identityColumn) = 100,对于一个有 100 条记录的表,为什么我稍后插入的新记录的 identityColumn 值不大于 100?”

预期结果:如果我向新表插入 5 条新记录,则 identityColumn 的值为“101”、“102”、“103”、“104”、“105”

实际结果:新记录的值为“52”、“57”、“62”...

如果我从上面粘贴的帖子中理解正确,Identity 列可能并不总是按顺序或连续顺序......这没关系。但是,我面临的问题是当我尝试插入新记录时,标识列不会从最后一个“最大”标识值继续。

以下是正在使用的代码类型的小示例:

---示例 1---

--1。使用标识列创建新表

创建表 newTable_With_Identity

(
identityColumn bigint IDENTITY(1,1)
,第 1 列
,第 2 列
,第 3 列
,第 4 列
,第 5 列
);

--2。将旧表中的数据插入新的标识表

插入 newTable_With_Identity

(
专栏 1
,第 2 列
,第 3 列
,第 4 列
,第 5 列
)
(Select * from oldtable order by column3 asc);

---示例 2---

(同上,只是把最后一个select语句改成下面这样)

(Select * from oldtable order by column1, column2, column3 asc);

最佳答案

来自 Redshift 的文档:

To be sure that the identity values are unique, Amazon Redshift skips a number of values when creating the identity values. Identity values are unique, but the order might not match the order in the source files.

来源:https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_TABLE_NEW.html

关于sql - AWS Redshift 身份列插入 - 新记录的身份值不大于以前的最大身份值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54467040/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com