标签:
参考这一篇文章:(不过我对这一篇文章有异议)
http://blog.csdn.net/leshami/article/details/39779509
1:搭建测试环境
create table t
(t int(10) primary key auto_increment);
mysql> show variables like ‘%increment%‘; +-----------------------------+-------+ | Variable_name | Value | +-----------------------------+-------+ | auto_increment_increment | 1 | | auto_increment_offset | 1 | | div_precision_increment | 4 | | innodb_autoextend_increment | 8 | +-----------------------------+-------+ 4 rows in set (0.00 sec)
执行3次插入操作,作为测试数据
insert into t values ();
insert into t values ();
insert into t values ();
#插入3个测试数据
mysql> select * from t; +---+ | t | +---+ | 1 | | 2 | | 3 | +---+ 3 rows in set (0.00 sec)
2:修改步长为5
mysql> set auto_increment_increment=5;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like ‘%increment%‘; +-----------------------------+-------+ | Variable_name | Value | +-----------------------------+-------+ | auto_increment_increment | 5 | | auto_increment_offset | 1 | | div_precision_increment | 4 | | innodb_autoextend_increment | 8 | +-----------------------------+-------+ 4 rows in set (0.00 sec)
然后执行三次插入操作:
mysql> insert into t values();
Query OK, 1 row affected (0.00 sec)
mysql> insert into t values();
Query OK, 1 row affected (0.00 sec)
mysql> insert into t values();
Query OK, 1 row affected (0.00 sec)
mysql> select * from t; +----+ | t | +----+ | 1 | | 2 | | 3 | | 6 | | 11 | | 16 | +----+ 6 rows in set (0.00 sec)
结论:初始值为1:步长:1,改为初始值1:步长:5。之后数值从3变到6了。
###################################################################
#插入4个测试数据,然后改步长为5.然后再插入一次数据。
mysql> select * from t; +---+ | t | +---+ | 1 | | 2 | | 3 | | 4 | | 6 | +---+ 5 rows in set (0.00 sec)
可以看到当之前的数据量小于步长5时候,新插入的数据还是6
###################################################################
###################################################################
#插入5个测试数据,然后改步长为5,然后再插入一次数据。
mysql> select * from t; +----+ | t | +----+ | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 11 | +----+ 7 rows in set (0.00 sec)
可以看到当,之前的数据量小于步长5的时候,插入的新数据还是6。
###################################################################
###################################################################
插入6个测试数据,然后改步长为5,然后再插入一次数据。直接变为11了。
mysql> select * from t; +---+ | t | +---+ | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | +---+ 6 rows in set (0.00 sec) mysql> set auto_increment_increment=5; Query OK, 0 rows affected (0.00 sec) mysql> show variables like ‘%increment%‘; +-----------------------------+-------+ | Variable_name | Value | +-----------------------------+-------+ | auto_increment_increment | 5 | | auto_increment_offset | 1 | | div_precision_increment | 4 | | innodb_autoextend_increment | 8 | +-----------------------------+-------+ 4 rows in set (0.00 sec) mysql> insert into t values (); Query OK, 1 row affected (0.00 sec) mysql> select * from t; +----+ | t | +----+ | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 11 | +----+ 7 rows in set (0.00 sec)
###################################################################
第一次是插入了3个测试数据,然后改步长为5,然后再插入数据为6;第二次插入4个测试数据,然后改步长为5,然后再插入数据还是6;插入5个测试数据,然后改步长为5,然后再插入数据还是6;插入6个测试数据,然后改步长为5,就变为11了。
如果前面的数据小于等于步长,那么改步长后新插入的数据就是步长+初始值。如果大于步长,则直接在此基础上增长.
################################################################################
delete from 删除后,仍然在原来基数上增长。
################################################################################
MySQL auto_increment_increment 和 auto_increment_offset
标签:
原文地址:http://www.cnblogs.com/xiaoit/p/4443046.html