• 0
  • 0
分享
  • MySQL (三)ROLLBACK - 撤消交易& 自动提交
  • 桃子 2022-08-30 11:07:20 字数 871 阅读 1485 收藏 0

为了恢复作为给定事务的一部分所做的所有更改,执行 ROLLBACK 命令。这将导致还原与事务相关的更改。

ROLLBACKS 通常在事务执行期间观察到/发生错误时应用。

让我们看一个使用 ROLLBACK 命令的示例。

我们将使用相同的交易借记 ACC1,贷记 ACC2,资金为 100 美元

START TRANSACTION; --statement1

UPDATE bankaccounts SET funds=funds-100 WHERE accountno='ACC1'; --statement2

UPDATE bankaccounts SET funds=funds+100 WHERE accountno='ACC2'; --statement3

ROLLBACK; --statement4

您可以看到我们刚刚将 COMMIT 语句替换为 ROLLBACK。

执行完所有这些语句后,如果您运行 SELECT 查询,您会发现基金余额没有任何变化,因为我们已经回滚了交易所做的更改。

MySQL 自动提交

在处理事务时,了解 MySQL 会话变量AUTOCOMMIT的使用很重要

MySQL 默认情况下将 AUTOCOMMIT 设置为 true,这意味着每个单独的语句都作为其自己的事务执行并自动提交/应用。

假设您正在运行一个正常的 SELECT 查询,如下所示:

从银行账户中选择 *;

启用自动提交后,此语句将执行为:

START TRANSACTION;
SELECT * FROM bankaccounts;
COMMIT;

当我们显式处理事务并在“START TRANSACTION”块内指定语句时,自动提交将关闭。应提交或回滚更改,以便分别应用或恢复事务。

要更新此属性,您可以简单地使用“SET”关键字。例如,要将 AUTOCOMMIT 设置为 OFF,您可以使用 2 个语句中的任何一个

SET AUTOCOMMIT = 0
SET AUTOCOMMIT = OFF

为了获取 AUTOCOMMIT 变量的值,可以使用以下命令:

显示变量,如“自动提交”;

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 1、JMeter简介JMeter是Apache组织开发的基于Java的压力测试工具。具有开源免费、框架灵活、多平台支持等优势。除了压力测试外,JMeter在接口测试方面也有广泛的应用。2、JMeter安装访问JMeter官网:https://jmeter.apache.org/download_jmeter.cgi,点击下载后解压缩,依次打开\apache-jmeter-4.0\JMeter\bin,运行jmeterw.cmd即可。(建议在桌面创建jmeterw.cmd的快捷方式,方便快速打开)3、使用JMeter完成单个接口测试3.1 添加线程组在“测试计划”上点击鼠标右键-->添加-...
            12 12 3302
            分享
          •   作为一名初出茅庐的软件测试员,职业发展的道路的确蜿蜒曲折,面对一次次的岗位竞争,挑战一道道的面试关卡,一边带着疑惑,一边又要做出选择,只能无奈的感叹:比你优秀的人比你还努力,你有什么资格不去奋斗……  那软件测试员,你究竟该如何规划下一份工作?路该怎么走?又该如何避免测试岗位的优胜劣汰?  作为过来人,分享一下我的经验,写给对测试未来迷茫的测试从业者。  软件测试员,你有这些困惑吗?  为什么我工作5年,工资不涨;他工作5年,年薪30w+,同为测试,差距竟然这么大?  总会考虑软件测试的未来:中年危机怎么办?好担心自己能力不够,思维太局限,总是瞎担心,一点长进都没有,我能怎么办?  软件测...
            0 0 575
            分享
          • 使用 Git 进行版本管理时,肯定不只做提交,有时候也会需要回退修改,并且在回退的基础上进行重新提交,这时候有几个常用的命令就需要用到了,下面分别做介绍。 1、查看提交日志 首先,我们查看当前提交记录的命令:$ git log commit bfee9d6618bc1deae52ac4a7942b96990bbfe661 (HEAD -> master, origin/master, origin/HEAD) Author: sylan215 <sylan215@sylan215.com> Date: Thu Oct 19 15:19:30 2017 +0800 ...
            1 2 1591
            分享
          • 1.安装和卸载应用是否可以在IOS不同系统版本或android不同系统版本上安装(有的系统版本过低,应用不能适配);软件安装后是否可以正常运行,安装后的文件夹及文件是否可以写到指定的目录里;安装过程中是否可以取消;安装空间不足时是否有相应提示;如果应用需要通过网络验证之类的安装,需要测试一下断网情况下是否有相应提示;是否可以删除应用(可通过桌面删除,也可以通过软件卸载安装。曾发现在IOS手相上有个应用安装时未完全安装,终止安装后,未完成安装的应用图标一直显示在手机上,并且无法成功删除);测试卸载后文件是否全部删除所有的安装文件夹;卸载过程中出现死机,断电,重启等意外的情况,待环境恢复后是否可以...
            0 0 953
            分享
          • 适合项目:测试任务明确,不会频繁变动;每日构建后的测试验证;比较频繁的回归测试;软件系统界面稳定,变动少;需要在多平台上运行相同测试案例、组合遍历型的测试,大量的重复任务;软件维护周期长。WebDriver API1、定位元素 (定位一组元素为find_elements_)根据ID find_element_by_id()根据Name find_element_by_name()根据Class find_element_by_class_name()根据tag find_element_by_tag_name() tag包括<div> <input>根据连接link例如...
            0 1 1138
            分享
      • 51testing软件测试圈微信