当前位置:网站首页>MySQL 巨坑:update 更新慎用影响行数做判断!!!
MySQL 巨坑:update 更新慎用影响行数做判断!!!
2022-07-05 15:03:00 【Java技术栈】
来源:cnblogs.com/yjmyzz/p/13562182.html
业务系统中,使用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语句的影响行数做重要的业务判断!
近期热文推荐:
1.1,000+ 道 Java面试题及答案整理(2022最新版)
4.别再写满屏的爆爆爆炸类了,试试装饰器模式,这才是优雅的方式!!
觉得不错,别忘了随手点赞+转发哦!
边栏推荐
- 漫画:程序员不是修电脑的!
- P1451 求细胞数量/1329:【例8.2】细胞
- mapper. Comments in XML files
- [recruitment position] infrastructure software developer
- 超越PaLM!北大碩士提出DiVeRSe,全面刷新NLP推理排行榜
- I spring and autumn blasting-2
- OSI 七层模型
- I want to inquire about how to ensure data consistency when a MySQL transaction updates multiple tables?
- Bugku's eyes are not real
- Number protection AXB function! (essence)
猜你喜欢
亿咖通科技通过ISO27001与ISO21434安全管理体系认证
No one consults when doing research and does not communicate with students. UNC assistant professor has a two-year history of teaching struggle
I spring and autumn blasting-1
OSI 七层模型
qt creater断点调试程序详解
市值蒸发超百亿美元,“全球IoT云平台第一股”赴港求生
First PR notes
Good article inventory
lvgl 显示图片示例
Optional parameters in the for loop
随机推荐
[recruitment position] Software Engineer (full stack) - public safety direction
Coding devsecops helps financial enterprises run out of digital acceleration
当代人的水焦虑:好水究竟在哪里?
Talk about your understanding of microservices (PHP interview theory question)
easyOCR 字符识别
社区团购撤城“后遗症”
I include of spring and Autumn
"Sequelae" of the withdrawal of community group purchase from the city
[12 classic written questions of array and advanced pointer] these questions meet all your illusions about array and pointer, come on!
我想咨询一下,mysql一个事务对于多张表的更新,怎么保证数据一致性的?
可转债打新在哪里操作开户是更安全可靠的呢
CODING DevSecOps 助力金融企业跑出数字加速度
[recruitment position] infrastructure software developer
Severlet learning foundation
Stop B makes short videos, learns Tiktok to die, learns YouTube to live?
12 MySQL interview questions that you must chew through to enter Alibaba
Run faster with go: use golang to serve machine learning
Brief introduction of machine learning framework
Ctfshow web entry information collection
你童年的快乐,都是被它承包了