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

    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

    2.6K20

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

    之前有碰到过开发同事指出一张InnoDB表的自增列 AUTO_INCREMENT 值莫明的变大,由于这张表是通过MySQLdump导出导入的。...InnoDB每处理一行才会为 AUTO_INCREMENT 列分配一个值。...=utf8 1 row in set (0.00 sec) 为自增列指定负值 无论 AUTO_INCREMENT 处于哪种锁模式下,自增列分配值机制不会生效,即为自增列指定负值是不影响 AUTO_INCREMENT...建议不要更新自增列的值,或是把自增列值更新为大于 AUTO_INCREMENT 的值。...AUTO_INCREMENT计数器的初始化 当为一张InnoDB表指定自增列时,此时表在数据字典中维护着一个特殊的计数器为自增列分配值,名称为 auto_increment 计数器,这个计数器是存储中内存中

    5.9K20

    保存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

    1.3K50

    MySQL数据表中的auto_increment自增值属性及修改

    所以我便想着是否可以通过修改数据表里主键的 AUTO_INCREMENT 自动递增值来一步到位,查了一些资料之后,就有了这篇博客。 0x01....查看自增值 一般来说,数据表中具有自增属性 AUTO_INCREMENT 的字段主要是数据表的主键或者具有唯一性的字段。...属性的列,其自增初始值与自增步长就是新设置的值,对当前已经带有 AUTO_INCREMENT 属性的列的自增初始值与自增步长不起作用。...所以,对于具有 AUTO_INCREMENT 属性的列,不用特意设置列值,而是直接将 NULL 值插入到自增列中去,数据库会自动根据当前的自增值生成列值。...=自增值; 3、直接指定 ALTER TABLE [表名] AUTO_INCREMENT=自增值; 如果执行完以后没有效果,那么可以再执行一次 commit 指令以提交更改,使其生效。

    6.4K10

    MySQL 自增主键,你以为很简单?这6个坑90%的开发者都踩过!

    今天我们就来盘点一下AUTO_INCREMENT 的真实机制,并盘点那些让你深夜加班的“经典坑点”。 1....InnoDB中AUTO_INCREMENT的实现机制 1.1 AUTO_INCREMENT 计数器的存储方式演进 版本 存储位置 持久性 并发控制 MySQL 5.7 及以前 内存 + 表定义缓存 非持久...常见“坑点”与原理分析 2.1 事务回滚不会回滚 AUTO_INCREMENT 值 如果在事务中进行插入操作,但是后续事务回滚了,那么数据回滚后,AUTO_INCREMENT不会回滚,而是事务中已分配的最大值的下一个值...若表中有 id=1000,执行 AUTO_INCREMENT=1 无效,下次插入仍为 1001。...小结 AUTO_INCREMENT 虽简单易用,但其背后涉及 并发控制、持久化、复制一致性 等复杂机制。

    24710
    领券