Mysql自动修复不是顺序的。
当我尝试上传csv批量数据时,它正在跳过一些自动增量ID
自动增量ID不是顺序
数据库引擎是innodb& id是自动增量
例如
id color 1 red 2 blue 3 green 4 orange 9 pink 10 white 11 black 16 gray 17 brown
id不是连续的。
答案 0 :(得分:3)
不知道codeignitor和事务的细节,但我知道查询中的“catched failed”(如insert ignore
)具有NOT插入的效果,但DO会增加auto_increment。在这里寻找你的答案。而对于其他人来说,不要打扰“修复”这个。
答案 1 :(得分:2)
如果您使用比5.1.22
更新的MySQL,可能会因为Miguel Angel Nieto在locking strategy中解释的InnoDB this blog post而引起这种情况。
您可以更改此行为设置innodb_autoinc_lock_mode
参数:
innodb_autoinc_lock_mode = 0
:“传统”锁定模式,与5.1.22
之前的行为相同innodb_autoinc_lock_mode = 1
:“连续”锁定模式,默认行为,这可能是您设置的,它旨在提高并发性和性能,但缺点是 hole < / em>关于序列。innodb_autoinc_lock_mode = 2
:“交错”锁定模式,这是使用语句时速度最快,扩展性最强的锁定模式,但不安全从二进制日志重播 SQL语句时的基于复制的或恢复方案 有关使用innodb_autoinc_lock_mode
的详细信息,您可以查看detailed mysql documentation。