Failed to read auto-increment value from storage engine

今天新建一张表做临时数据排查用,由于数据不多,我新建了如下一张表:

CREATE TABLE emp (id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,ename VARCHAR(20));

建完表后,新插入数据的时候,出现了下面的错误

Error Code: 1467
Failed to read auto-increment value from storage engine

show create table emp查看auto-increment已经长到255了。

于是我又新建了一张表

DROP TABLE IF EXISTS emp1;
CREATE TABLE `emp1` (
`id` TINYINT(3) UNSIGNED NOT NULL AUTO_INCREMENT,
`ename` VARCHAR(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4;

查看auto_increment

可以看出建表的时候auto_increment初始化是1,没有问题,然后我突然想到在报上面错误之前,有过一次插入失败,所以复现一下厂家

insert into emp1 。。。

跟之前一样报了下面这样一个错

Error Code: 1406
Data too long for column 'ename' at row 36

Execution Time : 0 sec
Transfer Time : 0 sec
Total Time : 0.208 sec

再查看一下表结构变换

可以看出,插入失败他的auto_increment是被修改了的

原文地址:https://www.cnblogs.com/geek-ace/p/9468026.html