表:
CREATE TABLE `test` (
`id` bigint(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
`gmt_create` datetime DEFAULT CURRENT_TIMESTAMP,
`gmt_modified` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`user_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `userid` (`user_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8
sql:
会自动根据主键或者唯一索引进行判断,存在则更新,不存在则插入
-- id是主键可以实现插入更新username和age字段
insert into test(id,username,age) values(123,"zhangsan",39) on DUPLICATE KEY UPDATE username=values(username),age=values(age)
-- user_id是唯一id,可以实现插入更新username和age字段
insert into test(user_id,username,age) values(123,"shangsan",39) on DUPLICATE KEY UPDATE username=values(username),age=values(age)
show create table test
chatgpt说:
对应mybatisPlus是:
service.saveOrupdate方法