由一个关于auto_increment的奇怪案例看MySQL8的一些改进优化

在MySQL8上偶然发现一个比较奇怪的问题,在使用alter table tab auto_increment=N修改表的自增初始值时,information_schema.tables这个表的auto_increment列并没有同步更新:

mysql> show create table test.incr_test\g
+-----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table     | Create Table                                                                                                                                                                  |
+-----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| incr_test | CREATE TABLE `incr_test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
+-----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> select auto_increment from information_schema.tables where table_schema='test' and table_name='incr_test';
+----------------+
| AUTO_INCREMENT |
+----------------+
|            101 |
+----------------+
1 row in set (0.00 sec)

mysql> alter table test.incr_test auto_increment=120;
Query OK, 0 rows affected (0.07 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> select auto_increment from information_schema.tables where table_schema='test' and table_name='incr_test';
+----------------+
| AUTO_INCREMENT |
+----------------+
|            101 |
+----------------+
1 row in set (0.00 sec)

首先想到的是,数据在buffer没提交?于是重启一下MySQL,auto_increment列仍是没有变化:

[root@linux-base data]# service mysql restart
Shutting down MySQL...                                     [  OK  ]
Starting MySQL..                                           [  OK  ]
[root@linux-base data]# mysql
Welcome to the MySQL monitor.  Commands end wi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值