手动修改AUTO_INCREMENT

这周工作遇到个小问题,有两张表,里面的id是一一对应的,但是因为测试数据的问题,a表的id远大于b的id,导致b表新插入数据和a表现有的数据对应上,导致混乱。

这个问题的解决方法就是把b表的AUTO_INCREMENT值改到比a表的max(id)大就可以了。

当时我的解决思路是先看了表结构信息:

show create table b;
-- output: ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1

根据上面的输出,发现AUTO_INCREMENT跟普通的属性没啥区别,就用了下面的语句:

-- 获取max_id
select max(id) + 1 from a;
-- 更新自增计数
alter table b AUTO_INCREMENT=max_id;

测试结果有效。

这个问题也可以通过插入一条指定id的数据来解决,但是放在应用中不方便操作。

(完)