postgresql 序列跳转 30 或 33 数字缓存等于 1

标签 postgresql

我使用了 postgresql 序列,并试图从序列中获取 nextval。我使用缓存 1,起始值为 1。计算机运行时一切顺利。但是在我异常关闭机器并重新启动它之后,我发现“select nextval('patient_seq')”跳了30或33。我为那个序列使用了缓存1。 有人知道为什么吗?序列在 postgresq 中是如何工作的?

最佳答案

每次您调用 select nextval('patient_seq') 时,即使您不使用它,也是在分配和递增。

我认为您打算使用 select currval('patient_seq') 它将为您提供由 nextval 分配的最后一个值。

这将允许您运行一堆插入,然后查看最后插入的值是什么。

关于postgresql 序列跳转 30 或 33 数字缓存等于 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38450394/

相关文章:

javascript - 如何在分布式环境中处理 PostgreSQL 触发器

database - PostgreSQL 规则有什么用?

postgresql - 为什么 PostgreSQL 需要 WAL 缓冲区和 WAL 段文件?

postgresql - pgadmin 4(或db visualiser)实体关系图

mysql - Group by select 基于 OR 条件

node.js - pg 池 - 使用具有超时功能的 pg 池的正确方法是什么

sql - PostgreSQL:创建索引以快速区分 NULL 和非 NULL 值

映射表的 SQL 查询直接转换为 JSON

java - org.springframework.dao.DataIntegrityViolationException : could not execute statement; SQL [n/a]; constraint [admin_pkey]; 错误

regex - Postgres 搜索字符 X 但不是 XX