Mybatis使用on duplicate key update的实现操作
这篇文章我们来讲一下on duplicate key update怎么使用
在mysql中,如果插入语句后面加上on duplicate key update,那么插入行的数据和表中的数据主键或者唯一索引出现重复就更新,不重复则插入
我们现在来模拟一下这种情况。
我们现在有一张student表

我们给姓名和手机号添加了唯一索引

接下来我们的思路是:我们添加数据的时候,每个人的姓名和手机号是唯一的,如果有重复的姓名或者手机号那么就不会添加新的内容,而是在原有的数据上进行更新
来看一下我们的sql语句

我们来测试一下


可以看到我们添加成功,那么我们再次添加,手机号和姓名不变,我们把地址改一下


可以看到姓名和手机号相同的话就会更新数据,那么为什么输出的是两行数据呢?我们在添加一条新的数据


可以看到,7完了以后直接变成9了。
实际上是用了两部操作,第一次插入的时候id变成8了,然后发现唯一索引上有值,后续改为更新操作,将地址更新到id=7上所以下次添加的时候,8已经有了,但是没有添加成功,实际上是存在的,所以就直接递增
到此这篇关于Mybatis使用on duplicate key update的实现操作的文章就介绍到这了,更多相关Mybatis on duplicate key update内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Spring boot @ModelAttribute标注的实现
这篇文章主要介绍了Spring boot @ModelAttribute标注的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-01-01
IDEA使用jformdesigner插件做管理系统MVC架构的步骤和实现思路
在 IntelliJ IDEA 中结合 JFormDesigner 插件,通过 Swing 框架实现一个管理系统的 MVC 架构是一种经典的开发方式,以下是具体的步骤和实现思路,包含从项目创建到 MVC 架构的核心代码实现,需要的朋友可以参考下2024-12-12
java并发编程专题(六)----浅析(JUC)Semaphore
这篇文章主要介绍了java JUC)Semaphore的相关资料,文中示例代码非常详细,供大家参考和学习,感兴趣的朋友可以了解下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入门学习中的基础知识,需要的朋友可以参考下2015-09-09


最新评论