• 0
  • 0
分享
  • MySQL (三)ROLLBACK - 撤消交易& 自动提交
  • 桃子 2022-08-30 11:07:20 字数 871 阅读 1969 收藏 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 变量的值,可以使用以下命令:

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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   一、定义:以执行组织的名义支持过程的持续改进活动  核心理念:兼顾项目管理和可交付成果两方面。  质量影响程度(代价由大到小):客户发现缺陷 > 交付前检测和纠正缺陷(验收或回归) > 检查并纠正过程本身 > 质量融入规划和涉及 > 质量文化  项目管理(过程优化)和项目可交付产品(质量治理)。  iso9000里质量是指一系列内在特性满足要求的程度;等级约定于优先级。  质量成本:产品生命周期中预防不符合要求、为评价产品或服务是否符合要求以及未达到要求(返工)的发生成本。  · 预防和评估成本:一致性成本。  · 劣质成本:内部团队发现的问题和外部用户发...
            0 0 1234
            分享
          • 功能测试可以说是件简单的事情,但是想要做好却并不那么容易。笔者所测的业务是商业化广告相关的CRM系统,整条业务线有18个子系统,很多子系统的流程相当长且繁复,功能逻辑复杂,想要上线后没有漏测着实不容易。不过从我接手以来,有幸还没有发生大的漏测问题。今天笔者就来聊聊自己对于功能测试的一些个人经验和思考。接到需求后,我一般会将需要做的工作分为三部分,分别为:需求分析、测试用例、以及测试执行。当然,有一个很重要的大前提,那就是要足够熟悉你所测的系统。下面就分别来聊聊这三部分。需求分析+设计分析拿到一个需求,第一步应该做的就是需求分析。这个环节很多人不在乎,觉得这不是测试的工作,而是产品应该的工作,测...
            10 9 1802
            分享
          • 网上收集到的一些有关Selenium自动化相关的面试,给出的答案仅供参考。1.Selenium中用什么函数判断元素是否存在?isElementPresent2.Selenium中hidden或者是display = none的元素是否可以定位到?不能,可以写JavaScript将标签中的hidden先改为0,再定位元素3.Selenium中如何保证操作元素的成功率?也就是说如何保证我点击的元素一定是可以点击的?添加元素智能等待时间 driver.implicitly_wait(30)添加强制等待时间(比如python中写 sleep)try 方式进行 id,name,clas,x path, ...
            1 1 1314
            分享
          •   1.制作下来菜单  1.1先选中某列,再点击数据  1.2设置值为“通过”、“未通过”注意中间为英文逗号!!!  2设置单元格值为某个值时,背景颜色发生变化  2.1先选中该列,再点击开始  2.2设置单元格值等于某值时的颜色变化  3.设置自动统计自己案例的执行比,插入countif函数(注意双引号为英文的双引号)  3.1通过数  3.2不通过数  3.3执行比(通过数+不通过数)/总数  在我们测试工作中大多数测试人员使用的用例设计方法都是黑盒用例设计方法,其中使用最多的方法就是等价类划分法和边界值分析法,这两者也是所有的用例设计方法中最简单的,但是有一个缺点是如果我们稍不注意就会造...
            0 0 9880
            分享
          •   在天网查上看了一下全国软件公司有1000多万家,其中上市的公司有7万多家,也就是占比0.7%。  通过这个数据可以发现,大部分公司从实力和规模上都偏向中型或者小型,也就说其中的流程不一定很健全,甚至没有流程而言。  下图截取了两张数据的图片供参考:图1  全国软件公司数据图2  上市公司数量  为什么要指出这个问题?笔者目前在二线城市,工作10年经历过几家公司,很少有公司把流程制定得很正规和完善。  基本上的形式是:常规瀑布模式和敏捷模式相结合。赶上功能已上线再出现Bug,常见的状态开发快速定位问题进行修改,测试抓紧时间进行测试,测完后上线发布。  所以得出的结论是流程...
            0 0 1775
            分享
      • 51testing软件测试圈微信