码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • MySQL事务基本操作(方式2)


    首先 你要了解 将事务改为手动提交 并控制事务的方式 如果不了解 可以先查看我的文章
    MySQL事务基本操作(方式1)

    然后我们来看表结构

    我们有一张 staff 用户表
    在这里插入图片描述
    然后我们将 黄飞鸿 转10年时间给赵敏 简单说 逻辑有四个

    第一步 查看黄飞鸿的年龄 确认他加十年不会超额
    第二步 将黄飞鸿年龄加十岁
    第三步 参看赵敏年龄不能小于10 不然减了就没了
    第四步 将赵敏的年龄减十岁

    但这个可能就会出现 黄飞鸿的年龄加了 赵敏的年龄没减 如果出现这种异常 那就出大事了 所以我们需要绑定事务
    让这几步操作 要么一起成功 要么一起失败

    接下来 我们来看手动事务控制的代码

    在这里插入图片描述
    这里 我们先将数据库的事务提交状态调回去 执行

    set @@autocommit = 1;
    
    • 1

    在这里插入图片描述
    我们的程序就执行成功了

    然后我们查询一下

    select @@autocommit;
    
    • 1

    我们现在查询到的状态就是 1 自动提交了
    在这里插入图片描述
    然后我们来通过手动开启事务的方式 完成上述逻辑

    我们先执行

    start transaction;
    
    • 1

    开启一个事务
    然后我们再来执行事务中要进行的操作

    select age from staff where name = "黄飞鸿";
    UPDATE staff SET age = age + 10 WHERE name = "黄飞鸿";
    select age from staff where name = "赵敏";
    UPDATE staff SET age = age - 10 WHERE name = "赵敏";
    
    • 1
    • 2
    • 3
    • 4

    然后我们查看表数据
    在这里插入图片描述
    可以看到 我们的数据还没有改变 因为事务操作还没有提交 数据不会发生真正的变化 只是存在了一个暂时的数据库里

    如果事务没有报错 那就可以执行

    commit;
    
    • 1

    把事务提交了 再去查看表数据
    在这里插入图片描述
    可以看到 我们的数据结构就完成了

    如果sql报错了 就 可以执行

    rollback;
    
    • 1

    回滚事务 这样就相当于什么都没发生过

  • 相关阅读:
    量化金融-分类数据的检验
    Nexus私服,使用Maven上传到仓库时提示xx/metadata.xml响应码 502
    Collection,Map与String互相转换
    uniapp获取接口数据并渲染至页面中
    ChIP-seq应用领域、研究思路、数据挖掘、下游实验、实验关键 | 易讲堂
    运维排查 | Systemd 之服务停止后状态为 failed
    Power BI: 安装和设置网关
    C++中的map
    异行星依赖管理系统显示面板与数据过滤设置
    Spring Boot 9 :详细描述Spring Boot + Vue项目部署过程:Centos为例(重点)
  • 原文地址:https://blog.csdn.net/weixin_45966674/article/details/127716568
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号