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 intoinsert 功能相似,不一样点在于: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
相关文章
相关标签/搜索