Duplicate entry for key 'PRIMARY'

【 TiDB 使用环境】测
【 TiDB 版本】 4.0.11
【遇到的问题】程序出现重复主键冲突
【复现路径】程序代码偶发
【问题现象及影响】
表的主键自增,程序insert不带主键的插入,会报主键冲突,并且冲突的主键是几个月前的数据.想知道什么极端情况下会导致这样的问题?
【附件】



image


看下是否符合你的情况

是否曾经有过显式插入主键的情况,这种有可能导致主键冲突

1 个赞

说的是210031 这个6月份的数据手动指定id值插入的情况么,然后后续不指定id插入也可能出现了冲突是么? 那这种情况怎么解决呢?

可以考虑重启下所有的tidb节点,这样可以根据表的最大ID值重新分配,但是后续还是尽量避免显式插入自增ID吧。

1 个赞

如果因为手动维护需要手动指定id插入的话,也是需要重启的么,那会不会维护起来很麻烦。

自增编号是系统批量分配给每台 TiDB 服务器的值(默认 3 万个值)看你有几个tidb
直接显示的写入一个较大的值。后续统一使用隐示执行。

有办法怎么复现这个问题么,开发反馈代码会出现这个问题 但是我手动执行几百次也没出现。

哦哦 可能是在不同节点执行导致

在不同节点尝试,很好复现的。

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。