5

Mysql 自动增量不是顺序的。

当我尝试上传 csv 批量数据时,它跳过了一些自动增量 ID

自动增量 ID 不是连续的

数据库引擎是 innodb & id 是自动增量

例子

   身份证颜色
    1红色
    2 蓝色
    3 绿色
    4橙
    9 粉红色
    10白
    11黑色
    16灰色
    17棕色

id 不是连续的。

4

2 回答 2

3

如果您使用比5.1.22这更新的 MySQL,则可能是因为 InnoDB锁定策略,正如 Miguel Angel Nieto 在此博客文章中所解释的那样。

innodb_autoinc_lock_mode您可以通过设置参数来更改此行为:

  • innodb_autoinc_lock_mode = 0“传统”锁定模式,与之前的行为相同5.1.22
  • innodb_autoinc_lock_mode = 1“连续”锁定模式,默认行为,这可能是您设置的,它旨在提高并发性和性能,但缺点是序列上有漏洞
  • innodb_autoinc_lock_mode = 2: “interleaved” 锁模式,这是最快和最可扩展的锁模式,但是在使用基于语句的复制或恢复场景时从二进制日志重放 SQL 语句时不安全

有关详细的使用信息,innodb_autoinc_lock_mode您可以查看详细的 mysql 文档

于 2014-06-16T16:13:04.640 回答
3

不知道 codeignitor 和事务的细节,但我知道查询中的“捕获失败”(如insert ignore)具有不插入的效果,但确实增加了 auto_increment。在这里寻找你的答案。其余的不要打扰“修复”这个。

于 2013-04-08T14:31:25.650 回答