天天看点

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

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