tidb auto_random返回刚插入的主键id为0

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
V6.5.9
【复现路径】做过哪些操作出现的问题
1、建表主键id 为auto_random随机主键
2、insert插入多行,通过mybatis返回刚插入的id都是0 mysql如何获取刚插入的主键id_mysql 插入获取id-CSDN博客
3、求助,随机主键,攒批多行insert,有办法避免出现主键id获取为0的情况?
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】

这通常是因为 MyBatis 默认不会处理 TiDB 的 LAST_INSERT_ID() 函数的特殊行为。
在 MyBatis 的映射文件中,确保你正确配置了如何检索生成的 ID。例如,你可能需要配置 useGeneratedKeys="true"keyProperty="id" 属性,以便 MyBatis 能够捕获并返回数据库生成的 ID。

1 个赞

不是所有返回都是0,偶发出现

写个测试方法测试一下,把所有日志都打出来,看看返回0的时候,有什么日志输出

根据上面配置了一下,可以返回了,不过只返回了LAST_INSERT_ID,是攒批,insert 多行,这个怎么能都返回?

换个方式,先获取,在写入,可行否?

1 个赞

按楼上方法,先获取,获取为0再获取,再写入,业务代码里调整一下