互联网服务PostgreSQL

使用seq设置自增id之后,如果带id插入一条数据,如何让seq自增到id+1?

新建的表通过select setval('blue_item_id_seq',1001,false); 设置自增id为1001, 如果此时带id插入一条数据id=1003,再次不带id插入数据时,seq的自增正好1003会冲突,但是强制使用数据库自增id就没办法指定id插入数据了,有没有啥解决方案呢?...显示全部

新建的表通过select setval('blue_item_id_seq',1001,false); 设置自增id为1001, 如果此时带id插入一条数据id=1003,再次不带id插入数据时,seq的自增正好1003会冲突,但是强制使用数据库自增id就没办法指定id插入数据了,有没有啥解决方案呢?

收起
参与5

查看其它 1 个回答甘草片的回答

甘草片甘草片软件开发工程师安天科技

1 这个问题在个别场合里会有碰到。基本用的都是分开区域的处理方法。
比如:你可以 把select setval('blue_item_id_seq',100000000,false);设置很大1亿开始的。自动插入的都是1以后的数据,自增的都是都是自己的值(这个值的范围都是 1- 1000万以内的)

还有个可以解决的问题:比如一个集团的公司,每个子公司内部的编号都是先从1 开始,这样也会有你说的雷同现象,那么就建立n个seq  每个部门自己用自己的,在前面加不同的字母标示,这用id这个类型要建立字符型的。这种不是很常见,一般在多系统整合时候会碰到。

软件开发 · 2022-01-14
浏览672

回答者

甘草片
甘草片162151
软件开发工程师安天科技
擅长领域: 数据库服务器存储

甘草片 最近回答过的问题

回答状态

  • 发布时间:2022-01-14
  • 关注会员:3 人
  • 回答浏览:672
  • X社区推广