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

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

序号
1
2
3
删除了3
新增后
序号
1
2
4
如何调整设置能使序号连贯不跳号?谢谢!!

自动实现比较困难。

你就不能自增长的值为序号。
用存储过程来实现。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-01-10
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;
第2个回答  2019-01-15
序号3已经生生了,虽然删除了,但删除的只是表记录,数据库已经记录了id,所以再次插入记录会从4开始。可以不用数据库自带的自增序列,改用自己创建序列。
第3个回答  2019-01-16
对于自增字段确实有这个问题,也无法改变,这是由于自增字段的值是内部计算,每使用一次都会自动+1,有点类似线序,你可以使用如下两种方法解决:
1、自增字段改为不用手工增加,每次都取最大值+1来存储
2、不改自增字段类型,采用逻辑删除的方法,比如在表中增加一个字段isdel(1表示已删除,0或者其它值表示没有删除),记录当前记录是否属于删除状态,
第4个回答  2019-01-15
跳号对你的数据也没影响;如果你感觉很不爽的话你可以自己做自增效果,每次去除表中自增字段的最大值加一咯;
sql server自带的自增效果就是这样,使用过的序号将不再使用。除非你每次删除最后一条记录重置一下重新开始自增;