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
上一篇:Hdu1095


下一篇:每日英语:A Different Color: China's Chameleonic Politics