事情背景:一个项目中,有用户发了几万条违规内容,从数据库中删除内容之后,内容的主键ID跳跃太大了,所以需要重新修改主键的自增值,也就是AUTO_INCREMENT的值。然而修改AUTO_INCREMENT的值本来是个驾轻就熟的小事,没想到突然发现改了没反应,重启也无效。然后我研究了一下,感觉跟数据库版本有关,因为这个项目用的是Mysql8.0版本InnoDB引擎,最后搜索研究了一下将问题解决。
一、先按正常方法修改AUTO_INCREMENT的值。执行sql如下,“k_tablename”为数据表名称,需要注意修改的auto_increment的值得大于现有主键的最大值。
ALTER TABLE k_tablename auto_increment=1234;
二、修改后查询一下auto_increment的值,执行下面sql可查询(结果发现还是修改之前的值)
SELECT AUTO_INCREMENT FROM information_schema.tables WHERE table_name="k_tablename";
三、分析数据表。重新分析一下数据表即可,执行如下sql。
analyze table k_tablename;
分析数据表之后,在执行第二步中的查询即可看到auto_increment的值修改成功。
本文完,谢谢观赏。
共1条评论
不错不错哦~~~