Mysql 自动增量不是顺序的。
当我尝试上传 csv 批量数据时,它跳过了一些自动增量 ID
自动增量 ID 不是连续的
数据库引擎是 innodb & id 是自动增量
例子
身份证颜色 1红色 2 蓝色 3 绿色 4橙 9 粉红色 10白 11黑色 16灰色 17棕色
id 不是连续的。
Mysql 自动增量不是顺序的。
当我尝试上传 csv 批量数据时,它跳过了一些自动增量 ID
自动增量 ID 不是连续的
数据库引擎是 innodb & id 是自动增量
例子
身份证颜色 1红色 2 蓝色 3 绿色 4橙 9 粉红色 10白 11黑色 16灰色 17棕色
id 不是连续的。
如果您使用比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 文档。
不知道 codeignitor 和事务的细节,但我知道查询中的“捕获失败”(如insert ignore
)具有不插入的效果,但确实增加了 auto_increment。在这里寻找你的答案。其余的不要打扰“修复”这个。