on duplicate key update 主键重复问题

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:4.0.0 rc
  • 【问题描述】: 经过测试 3.1.0和4.0.0rc版本中,均能复现此问题,其中3.1.0保持默认配置,麻烦跟进解决

主键重复

drop table t; create table t (name varchar(256) primary key, v int); begin; insert into t values (“a”, 1), (“b”, 3), (“a”, 2) on duplicate key update v = values(v); commit;

insert into t values (“a”, 1), (“b”, 3), (“a”, 2) on duplicate key update v = values(v); select * from t;

主键未重复

drop table t; create table t (name varchar(256) primary key, v int); insert into t values (“a”, 1), (“b”, 3), (“a”, 2) on duplicate key update v = values(v); commit;

insert into t values (“a”, 1), (“b”, 3), (“a”, 2) on duplicate key update v = values(v); select * from t;

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

mysql 上面没有复现到

您好,这个问题是一个已知 bug,您这边可以升级到 v3.1.1, v4.0.0-rc.1 进行测试,相关 pr https://github.com/pingcap/tidb/pull/14383

FYI,相关 Release Note:

  • 修复由于未检查 MemBuffer ,事务内执行 INSERT ... ON DUPLICATE KEY UPDATE 语句插入多行重复数据可能出错的问题 #16689
1 个赞

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