Mysql 自增id,其中一些被删除后,再添加内容这个自增id还是继续下去

如题所述

是正确的。删除了就不会连续,SQL不保证自增字段必须连续的,如果需要必须连续,不能使用自增字段,要手动计算id
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-09-27
因为自增一般都是序列的,序列有开始值,步长,结束值,下一个值,现在值。而且绝对不能出现重复。
我们假设一个序列,按顺序插入1-100,100条记录,然后地51条和第84条有问题,删除了。
如果再次插入, 应该是从101开始,不然不管是从51开始,还是从84开始?不管从哪个开始,根据步长都会出现重复,所以序列为了管理方便,都会直接记录已经用过的最大数值,然后从下一个步长开始。
删除的记录,序列不会管,只会增加不会减少。不然会增大很多的管理难度。
我曾经见过,在序列建立之前导入表的,然后建立的序列,后来他们发现这个表不能插入数据了,因为这个数字在表中存在了,那么就会报错。而导致没办法插入数据。本回答被提问者采纳

mysql数据库自增l列删除一条记录后再添加记录自增列就不连续了_百度知...
自动ID列,如果删除了记录,再插入记录时,默认不会重用已经删除的id,因此是不连续的。但如果确实需要连续的ID,则删除后必须手工修改关于自动增长的值。如,假如你这个表名为huoli,自动增长列为id,那么删除id=4的记录后,如果想重用id=4,那么执行如下语句:ALTER TABLE `huoli`MODIFY COLUMN `id` ...

mysql数据库主键设置了自增,但是,我把删除了一些数据,随后加的数据为什 ...
这是数据库主键自增的固然性质所决定的,数据删除后,主键还是会继续增加的,即主键使用过一次将不会再次使用。例如:这个表中有10条数据,主键为1-10不间断的数字,那删除第十条数据,继续插入的话,id则会变成11,而不是10。通俗的说就是主键使用过一次将不会再次使用。每次插入则不需要为主键设置...

mysql设置主键自增后 假设现在自增到7 我删除两条数据之后自增还是从...
自增ID字段是无法实现自动补缺的,所有试图让自动ID字段自动补缺的努力都是徒劳的!如果需要让记录编号不中断,只能用其他方式实现。例如在应用程序端为每条记录按顺序递增编号;数据库端解决则可将数据表的自动ID字段删除掉,再重新添加回自增ID字段、或者创建一个数据结构一样的表,truncate该表后,再...

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

为什么mysql事务回滚后,自增ID依然自增
不会随着delete而减少。而当mysql server启动时,当我们需要去查询auto_increment计数值时,mysql便会自动执行:SELECT MAX(id) FROM 表名 FOR UPDATE;语句来获得当前auto_increment列的最大值,然后将这个值放到auto_increment计数器中。所以就算 Rollback MySQL的auto_increament计数器也不会作负运算。

Mysql数据库中使用DELETE语句时,一般删除一条记录后ID会不连续,才能让...
答案肯定是没有必要这么做啦!你建立自增ID 的原因不就是为了起到唯一索引的目的吗,既然这样 那你就没必要再去人为处理 ID,如果去处理,反而会非常影响性能,何苦呢。

MySQL中重置ID重新开始自增编号mysql中id清零开始
在这个命令中,我们没有指定ID的值,MySQL会自动为插入的每一条记录分配一个新的ID。总结 在MySQL中重置ID,重新开始自增编号,有两种方法可以选择。第一种方法比较暴力,可以删除表中所有数据,第二种方法比较安全,可以保留表中数据并重新开始自增编号。使用这些方法之后,我们需要重新插入数据,注意指定...

清空MySQL表,如何使ID重新从1自增???
1、首先,打开Mysql查询器,连接上相应的mysql连接。2、鼠标右击需要清空自增ID的表,选择“设计表”,再将选项卡切换到“设置”栏,会发现虽然清空了表,但是自动递增的数值仍然没有变回1。3、在自动递增栏,将数值更改为数字1,并点击“保存”按钮。4、此时会发现,再新增数据时,ID自动从1开始递增...

MySQL自增ID不从零开始mysql不为0自增长
MySQL自增ID不从零开始的原因有很多种,如:1. 数据库迁移 当从一个数据库迁移到另一个数据库时,可能会导致自增ID发生变化。例如,我们将一个表从一台服务器迁移到另一台服务器时,自增ID可能会保持原来的值,而不是从零开始递增。2. 删除表中的数据 在删除表中的数据时,如果没有使用TRUNCATE...

SQL自增字段,有数据删除后,如何实现自增字段的连续
自动实现比较困难。你就不能自增长的值为序号。用存储过程来实现。

相似回答