InnoDB的auto_increment指定值被重置的解决方法
有时候新建的表需要对自增列指定初始值,但是有时候会出现明明指定过的初始值却被重置的现象。下面以一个小实验来说明这个问题: MySQL version:5.1.42 OS:redhat5.3 无废话,建张表先: 代码 诸位看官可以看见我指定了auto_increment=20000000。 表建好后,如果紧接着插数据,那么此现象是不会出现的: 代码 mysql> select * from sbtest1; 那什么时候?嗯,确切地说是做什么样的操作,重置现象才会出现呢?看实验: 代码 mysql> quit 这时,auto_increment的值被重置了! 通过以上的小实验,结合手册就能理解为什么会发生这种现象了: 如果对某张innodb表指定了auto_increment,那么innodb就会在data dictionary为它维护一个auto_increment计数器,注意:这个计数器只存储在内存中,不会写在disk上。 SELECT MAX(id) FROM sbtest1 FOR UPDATE; 解决方法: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- MYSQL数据库Linux平台mysql开启远程登录
- 在sql中使用内存表.什么时候合理且安全?
- Mysql学习SQL中distinct 和 row_number() over() 的区别及用
- Get Profile Property List By UserID
- Mysql必读Mysql 忘记root密码和修改root密码的解决方法(小结
- mysql触发记录,查找更改的列
- mysql中各种join连表查询总结
- 使用IP登录MySQL数据库Can't connect to MySQL server的
- MYSQL数据库MySQL中无GROUP BY情况下直接使用HAVING语句的问
- Mysql必读mysql更新一个表里的字段等于另一个表某字段的值实