使用 ON DUPLICATE KEY UPDATE
该语句是基于唯一索引或主键使用,比如一个字段 a 被加上了 unique index,并且表中已经存在了一条记录值为1
具体用法如下, 下面两个语句会有相同的效果
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;
UPDATE table SET c=c+1 WHERE a=1;
需要注意的是,用 MyBatis 调用时,当数据不存在时执行 insert 时,返回值是 1,当数据存在时,执行update 操作时,返回值是2
@Insert("INSERT INTO t1 (a, b, c) VALUES (1, 2, 3) ON DUPLICATE KEY UPDATE c = c + 1")
Integer insertOrUpdate();