设置自增id
sql语句创建
-- 删除序列
drop sequence IF EXISTS pipeline_test_id_seq
-- 创建序列 方式1
CREATE SEQUENCE pipeline_test_id_seq START 1;
-- 创建序列 方式2
CREATE SEQUENCE if not exists pipeline_test_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 999999999
START 1
CACHE 1;
-- 创建序列方式3
-- 从1开始,递增幅度1,最大值无上限
create sequence pipeline_test_id_seq increment by 1 minvalue 1 no maxvalue start with 1;
-- 指定序列(给表的主键指定创建好的序列)
alter table test_mergetable alter column "id" set default nextval('pipeline_test_id_seq ')
-- 设置序列自增长从当前最大值开始
SELECT setval('pipeline_test_id_seq ', (SELECT MAX(i_id) FROM test_mergetable))
在这里插入代码片
手动设置将id和gid设置为自动增长
查询
# 查看表dt_pipeline中的gid序列 每查看一次就会增长一次
SELECT nextval('dt_pipeline_gid_seq')
# 查看dt_pipeline中的id序列 每查看一次就会增长一次
SELECT nextval('dt_pipeline_id_seq')
# 查看表dt_node中的gid序列 每查看一次就会增长一次
SELECT nextval('dt_node_gid_seq') 1610727764
# 查看表dt_node中的gid序列 每查看一次就会增长一次
SELECT nextval('dt_node_id_seq') 5936347
重置初始值
SELECT setval('my_sequence', 200);
插入
插入时不用维护自动增长的id和gid
# 插入id gid都使用sequence
insert into dt_node(id, gid, dno, name, projectid) VALUES (nextval('dt_node_id_seq'),nextval('dt_node_gid_seq'),100, 1111, 'thisistest')
# 不新增id 如果设置为sequence它也会自增
insert into dt_node(gid, dno, name, projectid) VALUES (nextval('dt_node_gid_seq'),100, 'dfd', 'thisistest')
# 插入时不用维护自动增长的id和gid
insert into dt_node(dno, name, projectid) VALUES (100, 'dfd', 'thisistest')
更新自增id
# 将id用sequence更新
update dt_node set id=nextval('dt_node_id_seq') where projectid='thisistest'