INSERT ... ON DUPLICATE KEY UPDATE
和REPLACE
是有區(qū)別的,前者INSERT失敗后執(zhí)行UPDATE,后者相當(dāng)于DELETE再INSERT,原來整行都消失哦!
具體而言,如果你的表有3列的話:
id name alias
1 王五 王二麻子
這兩句的效果是不一樣的:
INSERT INTO pri (id, name) VALUES (1, '李四') ON DUPLICATE KEY UPDATE name = '李四'
REPLACE INTO pri (id, name) VALUES (1, '李四')
前者alias沒變,后者卻會變成null。
insert into on duplicate update 是在原紀(jì)錄上進(jìn)行操作
replace 判斷如果有重復(fù)的話,先進(jìn)行刪除操作,再進(jìn)行插入操作