mysql update from 语句_揭秘Mysql事物部分update语句成功,部分失败

8f2337a8ed08a695f2dc874e9a6741ed.png

使用mysql数据库的小伙伴们,对mysql怎么控制事物,语句的提交一定要了解清楚,如果应用代码对事物使用不当,就会造成Mysql事物部分update语句成功,部分失败。下面就详细解释其产生的原因

首先说一个mysql的事务提交的参数

8554e7f445b0ecd8f6e2f6840d6ea832.png

这个参数很好理解,如果autocommit设置为1,就是开启mysql数据库自动提交的特性,设置为0,则不开启自动提交。这里需要提醒大家的是,设置为1之后,数据库自动提交的意思,每当应用请求一个update,或者insert,或者delete语句时,Mysql就会提交这个语句。请注意,如果应用逻辑要实现的是一个事物包含3条update语句,大家都会认为,3个Update语句如果有一个执行失败,则全部回滚,但是请注意,应用如果没有在代码中显示的去启用事物,mysql数据库执行情况是这样的

858787fa0e0860f86ca93faeb82163f3.png

数据库成功执行了1和2两个update,第三个sql语句因为锁等或者连接断开,并没有执行,最后的结果是什么呢,就是语句1和语句2被数据库正常提交,并落盘了。我换一个写法,大家就明白了

0bdcfd42e6333b0a6fe89b9b1ca901f3.png

因为事物没有控制,就导致部分update语句成功,部分失败。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值