insert on duplicate key update 在更新的情况下没有返回 Last Insert ID

tidb版本: 4.0.11
表结构:

create table test_insert_id
(
    id   bigint auto_increment comment '主键' primary key,
    name varchar(255),
    modified_time datetime default now(),
    unique (name)
) ;

执行insert on duplicate

insert into test_insert_id(name) values ('李四') on duplicate key update modified_time=now();

第一次,执行插入,有返回Last Insert ID
image

第二次,执行更新,未返回Last Insert ID
image

在mysql上执行,每次都有返回Last Insert ID;
目前mybatis配置中useGeneratedKeys依赖Last Insert ID,希望能进一步兼容mysql,减少mysql迁移到tidb成本;

与下面这个问题类似:

  1. 可以展示下 mysql 两次的信息吗?多谢。
  2. 请问这个是用哪个工具?学习下,多谢。
    image

使用的工具是wireshark
mysql两次结果:

  1. 新增
  2. 更新
    image

第一次新增Affected Rows为1,第二次Affected Rows为2,两次都返回了Last Insert ID

提了一个 issue,可以关注下,多谢。 https://github.com/pingcap/tidb/issues/23914

ok,多谢

:handshake: