在 PostgreSql 中从最后一个值 +1 开始重新创建序列

Recreating sequence starting from last value +1 in PostgreSql

提问人: 提问时间:6/13/2022 更新时间:6/13/2022 访问量:286

问:

在我的 Java 项目中,我有一个序列,在 Spring Data JPA 中更新了一些继承后,现在我需要从最后一个值 + 1 开始删除并重新创建此序列。例如,如果最后一个值是 100,那么删除它后,我新创建的将从 101 开始。room_id_seqroom_id_seqroom_id_seq

那么,我该如何编写sql来实现这一点呢?我应该为新序列使用新名称,并且在使用上一个值创建它后,我是否应该删除前一个值?

java postgresql spring-data-jpa

评论

1赞 6/13/2022
您是否正在寻找这样的解决方案?
0赞 6/13/2022
非常感谢,这对我的情况似乎更好。投了赞成票。

答:

0赞 user330315 6/13/2022 #1

无需删除序列,只需使用setval()

select setval('room_id_seq', 101);

评论

0赞 6/13/2022
是的,但我现在不知道下一个值。因为它会根据代码在管道上传递的时间而改变。在这个场景中,我需要通过从 db 查询来获取当前值。
0赞 6/13/2022
@Jonathan:然后替换为返回“当前值”的查询,或将其作为参数传递。101