SQL自增字段,有数据删除后,如何实现自增字段的连续 5
我在一数据库中设置了一个叫序号的自增字段,但因为一些原因删除了最后一条记录,但再当新增时,系统的取值跳过了删除了那个值,例如:序号123删除了3新增后序号124如何调整设...
我在一数据库中设置了一个叫序号的自增字段,但因为一些原因删除了最后一条记录,但再当新增时,系统的取值跳过了删除了那个值,例如:
序号
1
2
3
删除了3
新增后
序号
1
2
4
如何调整设置能使序号连贯不跳号?谢谢!! 展开
序号
1
2
3
删除了3
新增后
序号
1
2
4
如何调整设置能使序号连贯不跳号?谢谢!! 展开
13个回答
展开全部
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.调整数据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开始。可以不用数据库自带的自增序列,改用自己创建序列。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对于自增字段确实有这个问题,也无法改变,这是由于自增字段的值是内部计算,每使用一次都会自动+1,有点类似线序,你可以使用如下两种方法解决:
1、自增字段改为不用手工增加,每次都取最大值+1来存储
2、不改自增字段类型,采用逻辑删除的方法,比如在表中增加一个字段isdel(1表示已删除,0或者其它值表示没有删除),记录当前记录是否属于删除状态,
1、自增字段改为不用手工增加,每次都取最大值+1来存储
2、不改自增字段类型,采用逻辑删除的方法,比如在表中增加一个字段isdel(1表示已删除,0或者其它值表示没有删除),记录当前记录是否属于删除状态,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2019-01-15
展开全部
跳号对你的数据也没影响;如果你感觉很不爽的话你可以自己做自增效果,每次去除表中自增字段的最大值加一咯;
sql server自带的自增效果就是这样,使用过的序号将不再使用。除非你每次删除最后一条记录重置一下重新开始自增;
sql server自带的自增效果就是这样,使用过的序号将不再使用。除非你每次删除最后一条记录重置一下重新开始自增;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询