首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

MySQl数据表中的ID设置为自增,为什么中间会出现ID编号不连续的情况解决思路

2012-04-11 
MySQl数据表中的ID设置为自增,为什么中间会出现ID编号不连续的情况比如说ID是自增的,从1到1073都是正常的,

MySQl数据表中的ID设置为自增,为什么中间会出现ID编号不连续的情况
比如说ID是自增的,从1到1073都是正常的,但是1073之后就变成1086了。这是什么原因?该怎样解决?

[解决办法]
因为有人删除了之间的id
[解决办法]
中间如果有别的事务作了delete操作。
[解决办法]
执行过什么操作,比如插入,即使没有成功,自增也要+1
[解决办法]
可能的原因很多, 建议楼主还是打开普通查询日志,然后在下次再出现类似情况时可以通过日志分析。
一般可能是,1)删除了记录,2)并发操作而导致一方插入示成功。3)事务操作未成功被回滚,4)。。。。
[解决办法]
数据库很严格的,说自增1他就自增1。
如果发现不是这样的,你就照这 #7 的同志的建议去查看错误。
[解决办法]
同意7,8楼的查下日志,看看有没有插入失败或者删除的操作,事务回滚的我认为一般是不多的,除非你的系统用到

[解决办法]
应该是有人把1074-1085这些记录项删除过...
[解决办法]
1.有并发进行了数据删除;
2.有INSERT失败,但是却触发了AUTOINCREMENT计数器+1操作;
3.可能有人手工写入一个较大的ID值,也即显示指定的;


推荐文章:
MySQL数据库InnoDB存储引擎Log漫游 简述:详细分析了InnoDB存储引擎Checkpoint技术,大家可以仔细研读!
[解决办法]
id auto_increment(id)如果是自增列的话,不会出现此情况的,除非中间
有删除操作或对表的id做了破坏性的操作,否则不会出现上述情况的。
[解决办法]
把日志的文件贴出出来分析一下。对数据库所做的什么样的操作不就一目了然了。
[解决办法]
打开MYSQL的官方免费手册,搜索 日志。 这个总会吧。
[解决办法]
去修改my.ini,将前面的#去掉相应功能就开启了

热点排行