当前使用版本(必须填写清楚,否则不予处理)
3.2.0
该问题是怎么引起的?(最新版上已修复的会直接close掉)
sql: INSERT INTO ( NAME, age ) VALUES ( 'zhangsan', 12 ) ON DUPLICATE KEY UPDATE NAME = VALUES( NAME ), age = VALUES( age ) 在自定义sql,使用唯一索引更细或插入时,无法获取到主键问题,而且与直接使用mybatis时区别如下: * 直接使用mybatis,不存在数据会插入,存在会更新,都能返回主键id * 使用mybatis-plus在无数据新增时能获取到主键,但是更新时无法获取到主键
重现步骤
报错信息
Comment From: miemieYaho
给出你的复现demo
Comment From: qintao0203
给出你的复现demo
数据库表
CREATE TABLE `user` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL COMMENT '名字',
`age` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `uq_name` (`name`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
复现sql
INSERT INTO ( NAME, age )
VALUES
( 'zhangsan', 12 )
ON DUPLICATE KEY UPDATE
NAME = VALUES( NAME ),
age = VALUES( age )
复现步骤
步骤一:使用mybatis,不存在数据会插入,存在会更新,都能返回自增主键id值 步骤二:使用mybatis-plus不存在数据新增时能获取到自增主键id值,但是更新时无法获取到主键id值
Comment From: miemieYaho
git形式的demo
Comment From: qintao0203
mysql如果字段都不更新是不会有结果的,找到原因了,麻烦了