当前位置:首页 » 网络管理 » 如何删除记录后id不会一直自增
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

如何删除记录后id不会一直自增

发布时间: 2022-07-12 19:15:05

1. ID自动编号的数据库当中删除了一条记录后,如何才能使编号仍然保持连续

这是很多人的误会:
自动编号只代表数据库只保证自动建立的编号是唯一, 并不保证编号是连续的.

至于你第2个问题, 可使用:
1. 程序语言实现(PHP, JAVA, C++, VB), 当执行删除操件,
update xxx set id = id - 1 where id > deleteId

2. 建立数据库"触发" (Trigger)

但老实说, 保存ID的连续性在实际上并不存在任何意义.

2. mysql中id自动增长,如果删除某行数据,再插入新的数据

由于是数据库管理系统内部机制限死的,题主这个需求没有太好的解决方案。

可以考虑在经过一段时间增删数据出现数字不连续情况后,采取删除自增ID字段,再重新添加自增ID字段来消除ID不连续的现象,也可以通过将数据导入含自增ID字段的空表等方法来消除数字间断。

3. Mysql数据库中使用DELETE语句时,一般删除一条记录后ID会不连续,才能让序号继续按顺序排列

答案肯定是没有必要这么做啦!你建立自增ID 的原因不就是为了起到唯一索引的目的吗,既然这样 那你就没必要再去人为处理 ID,如果去处理,反而会非常影响性能,何苦呢。

4. sql 表的主键是自增序列,如何解决删除的id...

没有必要,不连续就不连续。干吗必要连续。
ID本来就是作为数据的唯一标识用的,只要是唯一的就行,连不连续无所谓。
因为如果连续的话,那么你每次删除数据都要进行ID重新排列,这样当数据较多时,会严重影响速度,所以大家都不这样作。

5. 数据库id自动增长,数据不停的删除和插入,这样的话id字段会不断的变大,直到溢出这个问题是怎么解决的

这个看情况了,首先看看是不是有使用自增列的必要,如果有必要前期要有预见性,对于可能会出现溢出的情况,则尽量使用bigint类型,当然这个要多占用存储空间。如果删除操作比较规则,比如会定期删除较早的数据,那么可以在id即将溢出的时候重置种子,从头开始自增,如果不能循环使用id值得话只能在即将溢出的时候修改表,用更大的数据类型来作为自增列的类型,这个过程因为涉及大量的数据更新插入操作,速度会很慢,通常尽量避免。如果id快溢出了,最好新建一个表来存储新增的数据。

6. 数据库自动增加的ID能不能实现中间删除一条记录后,后便的ID自动向前串

直接实现是不行的,但是可以间接的。
比如说,把这个字段删除,然后重新建立。

如果要保持顺序,就把数据导入到一个临时表,然后清空原表,再导回来。

7. 在ci框架中怎样实现删除数据后id仍然能够不断号

如果是单用户操作好办,ID不自增,然后每次插入数据之次作一次最大的ID查询,取到最大的ID再加1就是新数据要插入的ID。
如果是多用户操作,要使用排他锁,避免得到脏数据。

8. MySQL自增长字段在删除后按照删除前字段值继续增长,如何破

你需要ALTER TABLE tablename AUTOINCREMENT = 3; 来重置自增长的值,因为设置了自增长后每条新纪录都是按照上次插入的id一直增长的,由于你上次插入的id是6所以就算你删了记录,再插入的话也是接着往7开始。

9. 求助:数据库中删除记录之后自动编号的ID不连续怎么办〔ASP+ACCESS〕

如何你刻意追求编号连续的话 以后不会删除数据还好 要是也要删除就麻烦很多

你可以把数据都重新导入到另一个表中 然后用那个新表

10. 在mysql中如何让删除后的id自动变化

在查询表中将id列全部删除,然后增加id列(非空 主键 自增长)就OK了,最后在表中将id列鼠标左键拖动至最左侧。