Pg sql 创建自动增长列及修改序列当前值

  • Post author:
  • Post category:其他


Pg 数据库创建自动增长列需要使用sql创建序列,然后再将序列绑定到对应的字段上。

创建序列的sql语句为

CREATE SEQUENCE REDIS_NODE_ID_SEQ
    START WITH 1        --开始值
    INCREMENT BY 1      --每次新增数
    NO MINVALUE         --无最小值
    NO MAXVALUE         --无最大值
    CACHE 1;            --缓存序列数量

绑定到指定列的sql语句为

alter table "REDIS_NODE" alter column "ID" set default nextval('REDIS_NODE_ID_SEQ');

获取序列下一个值的sql语句为

select nextval('REDIS_NODE_ID_SEQ')


这里序列为已经增加,如果你想改变序列的开始值,例如之前开始为1,你现在要改为10,执行以下sql语句是无效的

aleter SEQUENCE REDIS_NODE_ID_SEQ
    START WITH 10
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;

需要修改序列当前值,sql语句如下

--设置序列当前值
		ALTER SEQUENCE REDIS_NODE_ID_SEQ RESTART WITH 10


这里注意1075会用到一次,而不会直接从10开始,也就是select nexval(‘REDIS_NODE_ID_SEQ’)查出来的下个值返回的是10



版权声明:本文为zhou_xuexi原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。