Sql AWS红移标识列插入-新记录的标识值不大于以前的最大标识值

Sql AWS红移标识列插入-新记录的标识值不大于以前的最大标识值,sql,amazon-redshift,identity,Sql,Amazon Redshift,Identity,这是我关于stackoverflow的第一篇文章!如果我未能正确遵守提问政策,请允许我在这里直接道歉 话虽如此,我遇到了一个问题,在AWS红移中有一个身份栏,与以下帖子有关,但问题不同: 下面提供的问题示例值只是示例,用于说明问题: 如果我有一个maxidentityColumn=100,对于一个有100条记录的表,为什么我以后插入的新记录的identityColumn值不大于100 预期结果: 如果我在新表中插入5条新记录,identityColumn的值将为101、102、103、104、1

这是我关于stackoverflow的第一篇文章!如果我未能正确遵守提问政策,请允许我在这里直接道歉

话虽如此,我遇到了一个问题,在AWS红移中有一个身份栏,与以下帖子有关,但问题不同:

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

预期结果: 如果我在新表中插入5条新记录,identityColumn的值将为101、102、103、104、105

实际结果: 新记录的值分别为52,57,62

如果我从上面粘贴的帖子中理解正确,那么标识栏可能并不总是按顺序或连续顺序…这是可以的。但是,我面临的问题是,当我尝试插入新记录时,标识列不会从上一个max identity值继续

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

--例1--

-一,。创建具有标识列的新表

创建具有_标识的表newTable_

标识列bigint标识1,1 ,第1栏 ,第2栏 ,第3栏 ,第4栏 ,第5栏 ;

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

插入到具有\u标识的新表\u中

专栏1 ,第2栏 ,第3栏 ,第4栏 ,第5栏 按第3列asc从旧表顺序中选择*

--例2--

同上,但将最后一条select语句更改为

按列1、列2、列3 asc从旧表顺序中选择*

来自红移的文档:

为了确保标识值是唯一的,Amazon Redshift在创建标识值时跳过许多值。标识值是唯一的,但顺序可能与源文件中的顺序不匹配

资料来源: