mysql實(shí)現(xiàn)upsert功能

可以在INSERT INTO…..后面加上 ON DUPLICATE KEY UPDATE方法來(lái)實(shí)現(xiàn)。如果您指定了ON DUPLICATE KEY UPDATE,并且插入行后會(huì)導(dǎo)致在一個(gè)UNIQUE索引或PRIMARY KEY中出現(xiàn)重復(fù)值,則執(zhí)行舊行UPDATE。
例如,如果列a被定義為UNIQUE,并且包含值1,則以下兩個(gè)語(yǔ)句具有相同的效果:

INSERT INTO `table` (`a`, `b`, `c`) VALUES (1, 2, 3) ON DUPLICATE KEY UPDATE `c`=`c`+1; 
UPDATE `table` SET `c`=`c`+1 WHERE `a`=1;

如果行作為新記錄被插入,則受影響行的值為1;如果原有的記錄被更新,則受影響行的值為2。
注釋:如果列b也是唯一列,則INSERT與此UPDATE語(yǔ)句相當(dāng):

UPDATE `table` SET `c`=`c`+1 WHERE `a`=1 OR `b`=2 LIMIT 1;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.腦海中對(duì)爺爺?shù)挠洃?,著?shí)不多了!對(duì)他的記憶只定格在,爺爺六十歲左右的年紀(jì)!只記得得他中等身材,背有點(diǎn)駝,手里拿...
    GreatWall_Z閱讀 637評(píng)論 1 5
  • 用@Singleton做實(shí)驗(yàn),看編譯后生成的代碼:猜測(cè)這句與單例有關(guān): 進(jìn)ScopedProvider: 我擦,這...
    風(fēng)中追風(fēng)_閱讀 532評(píng)論 0 0
  • 在這晴朗的下午看一半水暖一半水寒看荷之殘景看風(fēng)織漣漪破敗竟也讓人心生歡喜春天就要來(lái)了春天在路上春天還沒(méi)走到眼前就已...
    Bohemian_e6af閱讀 210評(píng)論 0 4

友情鏈接更多精彩內(nèi)容