解决MySQL truncate或修改AUTO_INCREMENT后,不立即更新的问题

2021-04-06 864点热度 0人点赞 0条评论

遇到的问题描述

在截断truncate一张表以后,表的ID是自增长的(auto_increment),用软件或者SQL去查这个auto_increment的值的时候,发现并没有回到初始值(1)

另外如果手工去修改自增长的值,再用软件或SQL去查,也会发现并没有能查到是回到修改后的自增长值。

-- 查了一下my_prj1.t_test表的AUTO_INCREMENT值现在是100
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES where table_schema='my_prj1' AND table_name='t_test';

--truncate table后或者修改AUTO_INCREMENT,auto_increment理论上会更新到1
--或者ALTER TABLE my_prj1.t_test AUTO_INCREMENT = 1;
TRUNCATE table my_prj1.t_test;

--再查一下,发现AUTO_INCREMENT还是旧的100
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES where table_schema='my_prj1' AND table_name='t_test';

解决

方法很简单,只要再运行下ANALYZE TABLE就好了

TRUNCATE table my_prj1.t_test;
--手动触发更新一下INFORMATION_SCHEMA.TABLES里某个table的信息
ANALYZE TABLE my_prj1.t_test;
--再查一下,AUTO_INCREMENT已经更新成1
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES where table_schema='my_prj1' AND table_name='t_test';

 

 

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论