SQL自增字段,有数据删除后,如何实现自增字段的连续 5

我在一数据库中设置了一个叫序号的自增字段,但因为一些原因删除了最后一条记录,但再当新增时,系统的取值跳过了删除了那个值,例如:序号123删除了3新增后序号124如何调整设... 我在一数据库中设置了一个叫序号的自增字段,但因为一些原因删除了最后一条记录,但再当新增时,系统的取值跳过了删除了那个值,例如:

序号
1
2
3
删除了3
新增后
序号
1
2
4
如何调整设置能使序号连贯不跳号?谢谢!!
展开
 我来答
ERP小V
2019-01-28 · TA获得超过1257个赞
知道小有建树答主
回答量:1021
采纳率:82%
帮助的人:284万
展开全部
自动实现比较困难。

你就不能自增长的值为序号。
用存储过程来实现。
高冷的小榴莲2H
2019-01-10
知道答主
回答量:4
采纳率:0%
帮助的人:3016
展开全部
1.先取消主键的自增长,alter table 表名 change id id int primary key ;
2.调整数据id顺序 update 表名 set id = id - 1 where id > 10;
3.建议删除一遍后面的空数据,delete from 表名 where id > 1000;
4.把主键自增长设置回来,alter table 表名 change id id int primary key auto_increment;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2019-01-15
展开全部
序号3已经生生了,虽然删除了,但删除的只是表记录,数据库已经记录了id,所以再次插入记录会从4开始。可以不用数据库自带的自增序列,改用自己创建序列。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
archai

2019-01-16 · TA获得超过175个赞
知道小有建树答主
回答量:146
采纳率:84%
帮助的人:42.3万
展开全部
对于自增字段确实有这个问题,也无法改变,这是由于自增字段的值是内部计算,每使用一次都会自动+1,有点类似线序,你可以使用如下两种方法解决:
1、自增字段改为不用手工增加,每次都取最大值+1来存储
2、不改自增字段类型,采用逻辑删除的方法,比如在表中增加一个字段isdel(1表示已删除,0或者其它值表示没有删除),记录当前记录是否属于删除状态,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2019-01-15
展开全部
跳号对你的数据也没影响;如果你感觉很不爽的话你可以自己做自增效果,每次去除表中自增字段的最大值加一咯;
sql server自带的自增效果就是这样,使用过的序号将不再使用。除非你每次删除最后一条记录重置一下重新开始自增;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(11)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式