- 2017 09/29
REPLACE:
REPLACE INTO `table_name`(`col_name`, ...) VALUES (...); REPLACE INTO `table_name` (`col_name`, ...) SELECT ...; REPLACE INTO `table_name` SET `col_name`='value',
ON DUPLICATE KEY UPDATE:
INSERT INTO `table` (`a`, `b`, `c`) VALUES (1, 2, 3), (4, 5, 6) ON DUPLICATE KEY UPDATE `c`=VALUES(`a`)+VALUES(`b`);
相同之处:
(1)没有key的时候,replace与insert .. on deplicate udpate相同
(2)有key的时候,都保留主键值,并且auto_increment自动+1
不同之初:
insert .. on deplicate udpate保留了所有字段的旧值,再覆盖然后一起insert进去,而replace没有保留旧值,直接删除再insert新值

