我将主键设成了auto_increment,当我insert的时候有些时候生成的结果会是这样的:
1
3
4
主键值跳过了2,当我把记录全部删除在将auto_increment重新记数之后,再插入,结果又正确了:
1
2
3
4
这是什么原因?
|  |      1sivacohan PRO 有事务失败了。 | 
|  |      3sivacohan PRO 你具体情况我不太清楚。检查一下MySQL都有哪些连接。看一下日志吧。 如果你只有insert,这个基本就是有事务失败。 | 
|  |      4haozhang OP 我的autocommit设置为1,应该事务是自动的吧? | 
|  |      6pH      2015-07-30 09:46:57 +08:00 说实话我还是第一次看到这样的情况。 一般出现间断的情况都是因为我手动删除了。 | 
|  |      7thinkmore      2015-07-30 09:57:38 +08:00 我开始看到也是怀疑手动删除了,你看下是不是有其他人操作你的数据库,或者看看日志,不要在意这些细节 | 
|  |      10thinkmore      2015-07-30 10:13:37 +08:00 没有复现了吧?这个确实是不太好解决,建议不要浪费时间在这上面了 | 
|      11ncwhale      2015-07-30 10:25:14 +08:00 建议检查一下MySQL设置喵……如果是新项目,及早换数据库喵……PG或者Mongo都好喵…… | 
|  |      12mkeith      2015-07-30 10:53:22 +08:00 插入失败还是会自增的吧 | 
|  |      13millson      2015-07-30 11:12:10 +08:00 保存所有的sql,然后再查 | 
|  |      14gkiwi      2015-07-30 11:38:48 +08:00 事务会预先读个id先占着,用不用到再说,保证并发时候主键id不冲突。 比如事务1 先占了10,事务2接着占了11,结果事务1执行失败,10这个id就被弃了。 | 
|  |      16est      2015-07-30 12:53:54 +08:00 处女座玩 auto_increment 是一种怎么样的体验。。。 | 
|  |      22haozhang OP @thinkmore 关键是有复现啊,我觉得可能是我开了sequel pro?这货会一直占着一条连接? 不想了,随它去吧。 | 
|  |      23lianyue      2015-07-30 17:19:53 +08:00 无论插入成功没  id 都会自增1 |