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

我們給姓名和手機號添加了唯一索引

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

我們來測試一下


可以看到我們添加成功,那么我們再次添加,手機號和姓名不變,我們把地址改一下


可以看到姓名和手機號相同的話就會更新數(shù)據(jù),那么為什么輸出的是兩行數(shù)據(jù)呢?我們在添加一條新的數(shù)據(jù)


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

