Mybatis使用on duplicate key update的實(shí)現(xiàn)操作
這篇文章我們來(lái)講一下on duplicate key update怎么使用
在mysql中,如果插入語(yǔ)句后面加上on duplicate key update,那么插入行的數(shù)據(jù)和表中的數(shù)據(jù)主鍵或者唯一索引出現(xiàn)重復(fù)就更新,不重復(fù)則插入
我們現(xiàn)在來(lái)模擬一下這種情況。
我們現(xiàn)在有一張student表

我們給姓名和手機(jī)號(hào)添加了唯一索引

接下來(lái)我們的思路是:我們添加數(shù)據(jù)的時(shí)候,每個(gè)人的姓名和手機(jī)號(hào)是唯一的,如果有重復(fù)的姓名或者手機(jī)號(hào)那么就不會(huì)添加新的內(nèi)容,而是在原有的數(shù)據(jù)上進(jìn)行更新
來(lái)看一下我們的sql語(yǔ)句

我們來(lái)測(cè)試一下


可以看到我們添加成功,那么我們?cè)俅翁砑樱謾C(jī)號(hào)和姓名不變,我們把地址改一下


可以看到姓名和手機(jī)號(hào)相同的話就會(huì)更新數(shù)據(jù),那么為什么輸出的是兩行數(shù)據(jù)呢?我們?cè)谔砑右粭l新的數(shù)據(jù)


可以看到,7完了以后直接變成9了。
實(shí)際上是用了兩部操作,第一次插入的時(shí)候id變成8了,然后發(fā)現(xiàn)唯一索引上有值,后續(xù)改為更新操作,將地址更新到id=7上所以下次添加的時(shí)候,8已經(jīng)有了,但是沒(méi)有添加成功,實(shí)際上是存在的,所以就直接遞增
到此這篇關(guān)于Mybatis使用on duplicate key update的實(shí)現(xiàn)操作的文章就介紹到這了,更多相關(guān)Mybatis on duplicate key update內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Mybatis Update操作返回值問(wèn)題
- Mybatis中使用updateBatch進(jìn)行批量更新
- MyBatis注解方式之@Update/@Delete使用詳解
- 解決mybatis批量更新(update foreach)失敗的問(wèn)題
- 解決Mybatis返回update后影響的行數(shù)問(wèn)題
- mybatis update set 多個(gè)字段實(shí)例
- mybatis 實(shí)現(xiàn)多條update同時(shí)執(zhí)行
- mybatis update更新字段的使用操作
- mybatis執(zhí)行update批量更新時(shí)報(bào)錯(cuò)的解決方案
- mybatis 有時(shí)update語(yǔ)句執(zhí)行無(wú)效的解決方案
相關(guān)文章
Spring boot @ModelAttribute標(biāo)注的實(shí)現(xiàn)
這篇文章主要介紹了Spring boot @ModelAttribute標(biāo)注的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
SpringBoot?Web項(xiàng)目增刪改查入門實(shí)戰(zhàn)案例
這篇文章主要給大家介紹了關(guān)于SpringBoot?Web項(xiàng)目增刪改查入門實(shí)戰(zhàn)的相關(guān)資料,文中詳細(xì)介紹了如何實(shí)現(xiàn)新增、刪除、修改和查詢員工的功能,并使用統(tǒng)一響應(yīng)結(jié)果進(jìn)行前后端交互,需要的朋友可以參考下2024-11-11
IDEA使用jformdesigner插件做管理系統(tǒng)MVC架構(gòu)的步驟和實(shí)現(xiàn)思路
在?IntelliJ?IDEA?中結(jié)合?JFormDesigner?插件,通過(guò)?Swing?框架實(shí)現(xiàn)一個(gè)管理系統(tǒng)的?MVC?架構(gòu)是一種經(jīng)典的開(kāi)發(fā)方式,以下是具體的步驟和實(shí)現(xiàn)思路,包含從項(xiàng)目創(chuàng)建到?MVC?架構(gòu)的核心代碼實(shí)現(xiàn),需要的朋友可以參考下2024-12-12
java并發(fā)編程專題(六)----淺析(JUC)Semaphore
這篇文章主要介紹了java JUC)Semaphore的相關(guān)資料,文中示例代碼非常詳細(xì),供大家參考和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07
解決springboot項(xiàng)目啟動(dòng)報(bào)錯(cuò)Error creating bean with&nb
這篇文章主要介紹了解決springboot項(xiàng)目啟動(dòng)報(bào)錯(cuò)Error creating bean with name dataSourceScriptDatabaseInitializer問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助2024-03-03
深入解析Java編程中的StringBuffer與StringBuider
這篇文章主要介紹了Java編程中的StringBuffer與StringBuider,是Java入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-09-09

