mysql ON DUPLICATE KEY UPDATE 与 REPLACE INTO 的区别
#mysql ON DUPLICATE KEY UPDATE 如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE;如果不会导致唯一值列重复的问题,则插入新行。 例: INSERT INTO caller_platform_force (`caller_user_id`,`platform`,`in_use`) VALUES (5400714,2,1) ON DUPLICATE KEY UPDATE platform=2,in_use=1 INSERT INTO caller_platform_force SET caller_user_id=5400714,platform=2,in_use=1 ON DUPLICATE KEY UPDATE platform=2,in_use=1 #mysql REPLACE INTO replace into 跟 insert 功能类似,不同点在于:replace into 首先尝试插入数据到表中, 1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。 2. 否则,直接插入新数据。 例: REPLACE INTO caller_platform_force (`caller_user_id`,`platform`,`in_use`) VALUES (5400714,2,1) REPLACE INTO caller_platform_force SET caller_user_id=5400714,platform=2,in_use=1