之前没用过这个操作,甚至没见过……最近接触到,而且还挺有用。

作用:若 KEY 不重复,则插入记录;否则更新记录。

  • 单条操作:
INSERT INTO table(a, b, c)
VALUES (1,2,3)
ON DUPLICATE KEY 
UPDATE c=c+1;
  • 批量操作:
INSERT INTO database.table (id, key, field)
VALUES (v1, v2, v3), (v1, v2, v3), (v1, v2, v3)
ON DUPLICATE KEY UPDATE
id=VALUES(id), key=VALUES(key), field=VALUES(field);