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
相關文章
相關標籤/搜索