首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Postgresql序列跳变

Postgresql序列跳变
EN

Database Administration用户
提问于 2023-02-13 09:10:17
回答 1查看 114关注 0票数 0

最近,我将我的数据库从AWS v12迁移到了v2 PostgreSQL v14.6。问题是,我们已经在旧的RDS表中设置了排序,现在在新的无服务器v2中,测序正在从一个数字跳到另一个数字。跳跃例子- 1,2,3,4,5,20,21,22,23,24,25,32。我尝试删除旧的序列,并创建新的,但没有运气。

请告诉我你在整理这个问题时的想法。

EN

回答 1

Database Administration用户

发布于 2023-02-13 11:06:30

这是序列的预期行为。无论何时出现崩溃、错误,甚至当您断开与数据库的连接(取决于CACHE设置),它们都会跳过值。请参阅文献资料中的警告:

为了避免阻塞从同一序列中获取数字的并发事务,如果调用事务稍后中止,则不会回收由nextval获得的值以供重用。这意味着事务中止或数据库崩溃可能导致赋值序列中的空白。在没有事务中止的情况下也可能发生这种情况。例如,带有INSERT子句的ON CONFLICT将计算要插入的元组,包括执行任何必需的nextval调用,然后才能检测到任何冲突,从而导致它遵循ON CONFLICT规则。因此,PostgreSQL序列对象不能用于获得“无间隙”序列。

详细信息请阅读我的文章

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

https://dba.stackexchange.com/questions/323433

复制
相关文章

相似问题

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