mysql auto_increment_increment_mysql中auto_increment的incrementoffset

auto_increment_increment和auto_increment_offset

可以在全局global,本地session或者local动态设置这两个参数以控制auto_increment的增量与偏移量。

当修改auto_increment_offset之后的第一个auto_increment值一定是能够满足大于当前auto_increment最大值的最小倍数值,

之后再插入新值增量就为auto_increment_increment了。

看下测试情况:

mysql> set @@session.auto_increment_increment=10;

Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'auto_increment_increment';

+--------------------------+-------+

| Variable_name            | Value |

+--------------------------+-------+

| auto_increment_increment | 10    |

+--------------------------+-------+

1 row in set (0.00 sec)

mysql> set @@session.auto_increment_offset=5;

Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'auto_increment_increment';

+--------------------------+-------+

| Variable_name            | Value |

+--------------------------+-------+

| auto_increment_increment | 10    |

+--------------------------+-------+

1 row in set (0.00 sec)

mysql> select * from tab_auto_incr2;

+----+---+

| a  | b |

+----+---+

|  1 | 1 |

|  2 | 1 |

|  4 | 1 |

| 10 | 1 |

| 11 | 1 |

| 20 | 1 |

| 22 | 1 |

| 24 | 1 |

| 26 | 1 |

| 28 | 1 |

| 30 | 1 |

| 31 | 1 |

| 41 | 1 |

| 51 | 1 |

| 61 | 1 |

| 71 | 1 |

|  1 | 2 |

|  2 | 2 |

|  4 | 2 |

| 10 | 2 |

| 11 | 2 |

| 20 | 2 |

| 22 | 2 |

| 30 | 2 |

+----+---+

24 rows in set (0.00 sec)

mysql> insert into tab_auto_incr2(b) values(1);

Query OK, 1 row affected (0.00 sec)

mysql> select * from tab_auto_incr2;

+----+---+

| a  | b |

+----+---+

|  1 | 1 |

|  2 | 1 |

|  4 | 1 |

| 10 | 1 |

| 11 | 1 |

| 20 | 1 |

| 22 | 1 |

| 24 | 1 |

| 26 | 1 |

| 28 | 1 |

| 30 | 1 |

| 31 | 1 |

| 41 | 1 |

| 51 | 1 |

| 61 | 1 |

| 71 | 1 |

| 75 | 1 |

|  1 | 2 |

|  2 | 2 |

|  4 | 2 |

| 10 | 2 |

| 11 | 2 |

| 20 | 2 |

| 22 | 2 |

| 30 | 2 |

+----+---+

25 rows in set (0.00 sec)

可以看到,大于最大值71的且为5(auto_increment_offset=5)的倍数的最小值是75,所以在第一次insert时新值是75,再次执行insert,

mysql> insert into tab_auto_incr2(b) values(1);

Query OK, 1 row affected (0.00 sec)

mysql> select * from tab_auto_incr2;

+----+---+

| a  | b |

+----+---+

|  1 | 1 |

|  2 | 1 |

|  4 | 1 |

| 10 | 1 |

| 11 | 1 |

| 20 | 1 |

| 22 | 1 |

| 24 | 1 |

| 26 | 1 |

| 28 | 1 |

| 30 | 1 |

| 31 | 1 |

| 41 | 1 |

| 51 | 1 |

| 61 | 1 |

| 71 | 1 |

| 75 | 1 |

| 85 | 1 |

|  1 | 2 |

|  2 | 2 |

|  4 | 2 |

| 10 | 2 |

| 11 | 2 |

| 20 | 2 |

| 22 | 2 |

| 30 | 2 |

+----+---+

26 rows in set (0.00 sec)

可以看到,再次增加新值之后,就按auto_increment_increment(=10)进行新增

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值