最近我在给项目做性能优化的时候,将mysql中一些大表做了分库处理,运用mycat中间件来进行管理操作。
在迁移数据之后,发现无法新增记录了,提示主键冲突(Duplicate key '101' in table)。
1.查看当前主键最大值
SELECT Auto_increment FROM information_schema.`TABLES` WHERE Table_Schema='数据库名' AND table_name = '表名'
2.设置AUTO_INCREMENT为最大值+1
alter table `表名` AUTO_INCREMENT = {Auto_increment值};
经过以上操作,正常的mysql数据库就已经解决问题,可以正常使用了。
但是,我们的mycat自增长主键是保存在配置文件sequence_conf.properties中的。所以需要执行第三步才行。
3.修改mycat配置文件sequence_conf.properties
找到对应的那一行,表名.CURID=xxxx
将CURID的值改成第一步得到的Auto_increment值即可。