我使用了 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/