postgres 自增序列

1:查找xxx自增序列的当前值

 select currval('xxx');

2:查找xxx自增序列的下一个值

select nextval('xxx');

3:创建xxx自增序列

CREATE SEQUENCE xxx
  INCREMENT 1    序列增长步值
  MINVALUE 1   最小值
  MAXVALUE 9999999999    最大值
  START 1  开始值
  CACHE 1   缓存值,会在cache中预存序列值,如果数据库异常关闭,序列值会丢失
  CYCLE;         循环,表示到最大值后从头开始

4:修改xxx自增序列,除了start之外的其他值都可以修改

ALTER SEQUENCE xxx
  INCREMENT 10 
  MAXVALUE 100000000 
  CYCLE 
  NOCACHE ; 

5:修改某个字段的自增序列

----删除前先解除某个字段,例如表名是 student,name字段 对该序列的(序列名字是 name_seq)依赖
ALTER TABLE student ALTER COLUMN name SET DEFAULT null;
DROP SEQUENCE IF EXISTS "name_seq";
---- start_id即 id 目前的最大值,可写为1CREATE SEQUENCE "name_seq" START WITH start_id;
ALTER TABLE student ALTER COLUMN name SET DEFAULT nextval('name_seq'::regclass);

6:设置自增长从当前最大值开始

select setval('seq',(select max(name) from "student"));

7:重置自增字段为1

 ALTER SEQUENCE seq RESTART WITH 1; 

你可能感兴趣的:(sql)