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)有了,但是沒有添加成功,實(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)文章
SpringBoot?注解?@AutoConfiguration?在?2.7?版本中被新增的使用方法詳解
這篇文章主要介紹了SpringBoot?注解?@AutoConfiguration?在?2.7?版本中被新增(使用方法),本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-09-09用3個(gè)實(shí)例從原理到實(shí)戰(zhàn)講清楚Log4j史詩(shī)級(jí)漏洞
最近應(yīng)該很多人都在關(guān)注著一個(gè)漏洞Apache Log4j 2遠(yuǎn)程代碼執(zhí)行,該漏洞一旦被攻擊者利用會(huì)造成嚴(yán)重危害,這篇文章主要給大家介紹了關(guān)于如何用3個(gè)實(shí)例從原理到實(shí)戰(zhàn)講清楚Log4j史詩(shī)級(jí)漏洞的相關(guān)資料,需要的朋友可以參考下2021-12-12springboot jasypt2.x與jasypt3.x的使用方式
在軟件開發(fā)中,將配置文件中的敏感信息(如數(shù)據(jù)庫(kù)密碼)進(jìn)行加密是保障安全的有效手段,jasypt框架提供了這一功能,支持通過(guò)加密工具類或命令行工具生成密文,并通過(guò)修改配置文件和啟動(dòng)參數(shù)的方式使用密文和密鑰,這樣即便配置文件被泄露2024-09-09SVN出現(xiàn)提示org.apache.subversion.javahl.ClientException: Attempt
這篇文章主要介紹了SVN出現(xiàn)提示org.apache.subversion.javahl.ClientException: Attempted to lock an already-locked dir解決方案的相關(guān)資料,需要的朋友可以參考下2016-12-12