码迷,mamicode.com
首页 > 数据库 > 详细

MySQL auto_increment_increment 和 auto_increment_offset

时间:2015-04-21 00:15:19      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:

参考这一篇文章:(不过我对这一篇文章有异议)

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!