• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

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

武飞扬头像
BRYTLEVSON
帮助9

设置自增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'

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfgiiei
系列文章
更多 icon
同类精品
更多 icon
继续加载