ON DUPLICATE KEY是mysql中特有用法,
INSERT INTO tablename(field1,field2, field3, ...) VALUES(value1, value2, value3, ...) ON DUPLICATE KEY UPDATE field1=value1,field2=value2, field3=value3, ...;
INSERT INTO TABLE (a,c) VALUES (1,3),(1,7) ON DUPLICATE KEY UPDATE c=c+1;
执行后, c 的值会变为 4 (第二条与第一条重复, c 在原值上+1).
INSERT INTO TABLE (a,c) VALUES (1,3),(1,7) ON DUPLICATE KEY UPDATE c=VALUES(c);
执行后, c 的值会变为 7 (第二条与第一条重复, c 在直接取重复的值7).
复制了两个例子,有两个写法一种是field1=value1另一种是field1=VALUES(field1)
如下简单参考
INSERT INTO `ab_pay` (`pay_date`,`pay_income`,`pay_count`)
values(
#{newDate,jdbcType=DATE},#{payCost,jdbcType=BIGINT},#{payCount,jdbcType=BIGINT}
)
ON DUPLICATE KEY UPDATE pay_income=VALUES(pay_income),pay_count=VALUES(pay_count)