手动修改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的数据来解决,但是放在应用中不方便操作。
(完)
- 本文作者:吴泽辉
- 本文链接:https://mutex.top/posts/bce77f9e/
- 发表日期:2018年8月2日
- 版权声明:本文章为原创,采用《知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议》进行许可