Mybatis使用on duplicate key update操作详解

这篇文章我们来讲一下on duplicate key update怎么使用

在mysql中,如果插入语句后面加上on duplicate key update,那么插入行的数据表中的数据主键或者唯一索引出现重复就更新,不重复则插入

我们现在来模拟一下这种情况。

我们现在有一张student表

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

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

来看一下我们的sql语句

 我们来测试一下

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

 

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

 

 可以看到,7完了以后直接变成9了。

实际上是用了两部操作,第一次插入的时候id变成8了,然后发现唯一索引上有值,后续改为更新操作,将地址更新到id=7上所以下次添加的时候,8已经有了,但是没有添加成功,实际上是存在的,所以就直接递增

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值