互联网服务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插入数据了,有没有啥解决方案呢?

参与5

2同行回答

anikikonganikikong  数据库运维工程师 , 中国民生银行
主动插入id的做法和使用id自增的思路肯定是矛盾的。所以并不是从技术上去穷尽办法去解决一个业务上没思考清楚的问题。应该从源头上解决这中矛盾的做法。显示全部

主动插入id的做法和使用id自增的思路肯定是矛盾的。所以并不是从技术上去穷尽办法去解决一个业务上没思考清楚的问题。应该从源头上解决这中矛盾的做法。

收起
银行 · 2022-01-17
浏览641
甘草片甘草片  软件开发工程师 , 安天科技
1 这个问题在个别场合里会有碰到。基本用的都是分开区域的处理方法。比如:你可以 把select setval('blue_item_id_seq',100000000,false);设置很大1亿开始的。自动插入的都是1以后的数据,自增的都是都是自己的值(这个值的范围都是 1- 1000万以内的) 还有个可以解决的问题...显示全部

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

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

收起
软件开发 · 2022-01-14
浏览613

提问者

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2022-01-14
  • 关注会员:3 人
  • 问题浏览:1223
  • 最近回答:2022-01-17
  • X社区推广