postgreSQL创建自增的id, postgresql nextval对应增删改查的使用

5 篇文章 0 订阅
2 篇文章 0 订阅

设置自增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'
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BRYTLEVSON

打赏的都是天使,创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值