REPLACE INTO 用法示例:

REPLACE INTO tablename (f1, f2, f3) VALUES(vf1, vf2, vf3), (vvf1, vvf2, vvf3);

ON DUPLICATE KEY UPDATE 用法示例:

INSERT INTO tablename (a,b,c) VALUES (1,2,3), (4,5,6)
ON DUPLICATE KEY UPDATE c = VALUES(c);

如果没有主键或唯一索引冲突,两者效果都是 INSERT 插入数据,如果存在冲突,那么

  • REPLACE INTO 是先 DELETEINSERT

  • ON DUPLICATE KEY UPDATE 是只执行其后的 UPDATE 语句。

如果想要实现插入或更新效果,选择 ON DUPLICATE KEY UPDATEREPLACE INTO 性能更好,表现更佳。