auto random 主键冲突

【 TiDB 使用环境】生产环境
【 TiDB 版本】6.5.1
【复现路径】
【遇到的问题:问题现象及影响】
对auto random 的表批量插入数据会报主键冲突
【资源配置】*
【附件:截图/日志/监控】

1.批量写入时。是否有tidb重启过?

没有重启

你这个重复的id值很小啊,看着不像自动生成的。。。。

但是,你看insert,根本就没显示插入id :joy:
而且auto_random_base 就是53223112

表里面有id是52844394这条数据吗?是怎么产生的。。。

有的,查得到。应该是之前br恢复出来的数据

select max(id)&0x7ffffffffffffff from xxxtbl
确认最大的 id,然后修改 base 到这个值

1 个赞


怎么修改base呢,官方没有找到语句

我找了下,没有这个变更的
可以考虑规避方案:总体思路就是创新创建表,把除了 id 以外的列插入进去;然后再 rename 回来

比如:
1、如果数据量不大,可以直接select
2、如果数据量比较大,可以考虑 dumpling + lightning;
dumpling 导出的时候可以考虑不带 id 值(当然,带也没关系);

好的,不过感觉这是个bug

可能真的有冲突