MySQL replace into (insert into 的增强版)
在使用SQL語(yǔ)句進(jìn)行數(shù)據(jù)表插入insert操作時(shí),如果表中定義了主鍵,插入具有相同主鍵的記錄會(huì)報(bào)錯(cuò):
?Error Code: 1062. Duplicate entry 'XXXXX' for key 'PRIMARY'(主鍵沖突)
這樣我們只好檢查主鍵是不是存在,若存在則更新,若不存在則插入。或者寫(xiě)SQL流程控制語(yǔ)句(if...else...)
?
Mysql提供了replace into跟insert into的功能一樣。不同點(diǎn)在于:
如果發(fā)現(xiàn)表中已經(jīng)有此行數(shù)據(jù)(根據(jù)主鍵或者唯一索引判斷)則先刪除此行數(shù)據(jù),然后插入新的數(shù)據(jù)。否則,直接插入新數(shù)據(jù)。
注意:因?yàn)橐鶕?jù)主鍵或者是唯一索引判斷是否有重復(fù)數(shù)據(jù),所以操作的表必須要有主鍵或者是唯一索引。否則的話,replace into?會(huì)直接插入數(shù)據(jù)。
?
Mysql replace into用法有三種,最簡(jiǎn)單的一種用法就是直接將 "insert" 關(guān)鍵字替換為"replace"就可以啦。
insert into t(... , ...) values(... , ...)
修改為
replace into t(... , ...) values(... , ...)
總結(jié)
以上是生活随笔為你收集整理的MySQL replace into (insert into 的增强版)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 微型php框架 include/con
- 下一篇: arm-hisiv100nptl-lin