首页
学习
活动
专区
工具
TVP
发布
您找到你想要的搜索结果了吗?
是的
没有找到

MySQL重新设置auto_increment

处于某种目的,如果希望该自增字段值一定是连续的,有2种解决办法: 1.表记录不允许物理删除 2.物理删除表记录后重新设置auto_increment 在此,专门针对重新设置auto_increment...更新auto_increment值 在修改表的auto_increment值之前需要先查看当前值是多少: mysql> select auto_increment from information_schema.tables...where table_schema='数据库名' and table_name='表名'; +----------------+ | auto_increment | +--------------...如果此时我们将表中的最后10000条数据物理删除掉,那么再插入新的记录时,auto_increment值将会继续增加:60003,60004 ... 。...为了使得新添加的记录自增ID再次继续从50003开始计数,执行如下语句: mysql> alter table 表名 AUTO_INCREMENT=50002; 最后总结 直接修改auto_increment

1.6K20

MySQL字段自增长AUTO_INCREMENT用法实例详解

InnoDB每处理一行才会为 AUTO_INCREMENT 列分配一个值。...=utf8 1 row in set (0.00 sec) 为自增列指定负值 无论 AUTO_INCREMENT 处于哪种锁模式下,自增列分配值机制不会生效,即为自增列指定负值是不影响 AUTO_INCREMENT...建议不要更新自增列的值,或是把自增列值更新为大于 AUTO_INCREMENT 的值。...AUTO_INCREMENT计数器的初始化 当为一张InnoDB表指定自增列时,此时表在数据字典中维护着一个特殊的计数器为自增列分配值,名称为 auto_increment 计数器,这个计数器是存储中内存中...UPDATE; 默认的,自增列的下一个分配值由以上语句得出的值增加 1 ,这个增加步长由参数 auto_increment_increment 决定。

5K20

保存mysql InnoDB的auto_increment值另类方案

问题描述 mysql数据库有auto_increment这样一个特性,一般是用来设置Integer类型主键自增长。...比如下面的代码: -- 刚创建表,该表没有AUTO_INCREMENT值 create table test( id int(11) primary key not null auto_increment...mysql的上述行为说明在mysql运行过程中InnoDB存储引擎的表,其AUTO_INCREMENT值会随着插入操作持续增长的,但mysql重启之后,AUTO_INCREMENT值并没有持久保存下来,...重启后再插入数据,mysql会以表中最大的id+1作为当前的AUTO_INCREMENT值,新插入的数据的ID就变为这个了。...值保存下来 利用插入后的触发器,在每次插入数据后更新保存的auto_increment值 利用init-file参数,在mysql服务启动时调用一个存储过程,该存储过程负责以保存的auto_increment

95450
领券