网站首页 > 精选文章 正文
业务系统中,使用update语句更新数据是再正常不过的场景,我们也经常通过update更新的行数,来做一些业务判断,类似下面的伪代码:(mybatis + mysql 场景)
if (xxxMapper.updateByPrimaryKeySelective(entity)>0){
//更新成功,做其它业务处理
}
但是这里有一个坑,mysql中update影响行数>0是有条件的,假如有一张表:
里面只有一条记录(ID=1),我们用update更新一把ID=1的这条记录
这一行成功更新,影响行数为1,理所当然,然后把这条update语句再执行一次:
这时候,返回的影响行数为0,也就是说,当待更新的记录与原始记录旧值相同时,mysql其实并不会做任何更新。 换言之,如果上游传过来的数据,与数据库本身的旧值相等,没有变化时,update语句影响行数为0。这与另一种场景:"更新一条并不存在的记录,影响行数返回0" 无法区分。
结论:不要使用update语句的影响行数做重要的业务判断!
来源:cnblogs.com/yjmyzz/p/13562182.html
猜你喜欢
- 2025-01-31 Java从零开始:不同系统JDK的安装及Java基本命令
- 2025-01-31 Visual Studio 2015 Update 1正式发布
- 2025-01-31 Java中生成随机数的4种方式(java中随机生成数字的方法)
- 2025-01-31 MySQL有哪些实现方式?何为插入,何为更新?
- 2025-01-31 微软:今日起,IE11正式封杀老旧ActiveX控件
- 2025-01-31 阿里Java三面:分布式延时任务方案解析,万字长文一篇点通你
- 2025-01-31 打开软件遇警告 解决方法并不难(软件打开异常是什么原因)
- 2025-01-31 手把手教你搭建一个基于Java的分布式爬虫系统「转」
- 2025-01-31 性能问题从发现到优化一般思路(性能问题是什么意思)
- 2025-01-31 讲真的,关于 Java 正则表达式,你具体知多少?
- 05-3022《Vue 入门教程》VueRouter 路由嵌套
- 05-30前端面试题-Vue 项目中,你做过哪些性能优化?
- 05-30超简 Vue3+elementPlus 后台管理系统
- 05-30还有前端不知道Electron的?手把手教你把Vue项目打包成桌面程序
- 05-30Nuxt最简入门,让vue项目快速被搜索引擎收录
- 05-30Mac上最美最好用软件系列
- 05-30AI编程小白必备|Cursor安装及配置教程
- 05-30好玩儿的编程语言——文言文编程语言
- 最近发表
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)