遇到的问题描述
在截断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';
文章评论