七月
18
2016

Mysql 中数据表的 ID 增量为 2 的问题

今天偶然发现 live 数据库的数据表的所有 ID 都是以偶数形式插入的,全是2, 4, 6, 8, 10 这样的偶数类型。

而且本地数据库正常,没有这方面的问题,偏偏上线以后就是这么奇怪。

于是百度了一下,果然还看到不只是我自己遇到了这个问题。

搜索的结果来自百度知道,原本的问题是这样的:

为什么mysql表中自增长id以奇数形式增长? 我们数据库的表之前还正常。突然出现所有的表中不论手动添加内容,还是自动添加内容,自增长id都是以奇数形式生成的,就1,3,5,7,9,11,13.。。。。这样的形式自增长。请问高手如何解决啊~~谢各位了~

还好这个问题是有答案的:

数据库的 step 被设置成 2 了

通过执行 SQL

SHOW VARIABLES LIKE 'auto_inc%';

通过上述命令可以查看数据库的步长和偏移量。通过查询,在 live 上面 auto_increment_increment 的值为 2auto_increment_offset 的值为 2

auto_increment_increment 决定了增量值,auto_increment_offset 决定了偏移值,所以会出现上面提到的问题。

解决问题的 SQL

SET @auto_increment_increment = 1;
SET @auto_increment_offset = 1;

问题本身没有多少难度,但是没有这方面的意识的话,颇有一种无从下手的感觉 ,所以便在自己的 PHP 博客中记录下来吧。

非特殊注明博文为 爱PHP吧(www.iphp8.com)原创内容,转载请注明原文地址:http://www.iphp8.com/?post=98

评论

发表评论:

(选填)

(选填)