postgresql 查看和设置序列 nextval currval lastval setval

创建日期: 2023-09-25 16:17 | 作者: 风波 | 浏览次数: 15 | 分类: PostgreSQL

来源:https://blog.csdn.net/carcarrot/article/details/106873197

该系列函数返回值类型均为 bigint

  1. nextval(regclass) - 递增序列对象到它的下一个数值并且返回该值。这个动作是自动完成的。即使多个会话并发运行nextval,每个进程也会安全地收到一个唯一的序列值。
  2. currval(regclass) - 在当前会话中返回最近一次nextval抓到的该序列的数值。(如果在本会话中从未在该序列上调用过 nextval,那么会报告一个错误。)请注意因为此函数返回一个会话范围的数值,而且也能给出一个可预计的结果,因此可以用于判断其它会话是否执行过nextval。
  3. lastval() - 返回当前会话里最近一次nextval返回的数值。这个函数等效于currval,只是它不用序列名为参数,它抓取当前会话里面最近一次nextval使用的序列。如果当前会话还没有调用过nextval,那么调用lastval将会报错。
  4. setval(regclass, bigint) - 重置序列对象的计数器数值。设置序列的last_value字段为指定数值并且将其is_called字段设置为true,表示下一次nextval将在返回数值之前递增该序列。
  5. setval(regclass, bigint, boolean) - 重置序列对象的计数器数值。功能等同于上面的setval函数,只是is_called可以设置为true或false。如果将其设置为false,那么下一次nextval将返回该数值,随后的nextval才开始递增该序列。
  6. alter sequence s_seq restart with 2 - 使序列值从指定的值重新开始。

注意:注意序列名中有大写字母时,regclass参数值需要用双引号括和单引号一起括起来 select nextval('"ACT_ChecklistItem_Id_seq"');

15 浏览
0 评论