• 0
  • 0
分享

众所周知,事务是一个实体——通常是一组 SQL 语句,或者语句和存储过程调用的组合,应该全部执行或不执行。

例如,如果一个事务有 4 个语句 - S1 到 S4 并且例如 - S4 抛出一些错误可能是由于不正确的语法或访问或任何功能问题,那么语句 S1 到 S3 将被回滚并且数据库将到达它的原始状态,好像没有执行任何语句。

1661764648771.jpg

理解 MySQL TRANSACTION 的最佳示例是同一家银行的 2 个账户之间的汇款。

想象一下,如果没有 TRANSACTION,这将如何工作?

1661764693229.jpg

假设借记成功,但贷记没有发生,可能是因为一些数据库问题。在这种情况下,数据库将处于不一致的状态。

因此,在这种情况下,客户的账户会借记,但其他客户的账户不会贷记。理想情况下,您希望此交易(包括信用卡和借记卡)发生,否则不会发生。即,在这种情况下,如果它是一个事务,那么失败的贷记将导致借记操作的回滚,并且不会对数据库状态进行更改。

现在让我们了解 MySQL TRANSACTION 有哪些属性以及我们如何实际使用它们。

MySQL TRANSACTION 的属性

MySQL 支持事务安全关系数据库管理系统的 ACID 属性。让我们简要地看一下这些属性。

  • A(原子性):事务通过运行 ALL 或 NONE 来支持原子性 - 即事务的所有语句都将被执行,或者它们都不执行。

  • C(Consistency): Consistency 属性确保数据库在事务完成之前和之后应该处于一致的状态。事务的原子性质支持这一点。

  • I(隔离): MySQL 提供了锁的概念以及事务。这确保了在事务执行期间,不会对该行数据进行其他操作。

  • D(Durability):持久性是指数据库从故障中恢复的能力。即即使存在系统故障,任何事务一旦成功应该能够应用更改。

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   概述  在人才市场中,一次完整的求职过程通常包括以下阶段:  · 简历筛选  · 电话面试  · 笔试面谈  · 意向确定  · 就职到岗  其中第一步,简历是求职过程中的敲门砖。  简历如果过于潦草,无法体现自身真实水平,那么可能连面谈的机会都得不到;反之,简历如果过于浮夸,后续流程中也难免露馅,造成不好的后果。  本文就来探讨一下,一份合格的测试工程师简历应该如何撰写。  简历元素  一份合格的简历应当包含以下元素:  · 基础情况  · 个人信息  · 教育背景  · 技术能力  · 工作经历  · 项目经验  · 自我评价  1. 基础信息  求职者的基础情况有时候不会单...
            0 0 1135
            分享
          • 一、基本操作1、安装软件-编辑 yum -y install2、安装软件-上传下载 yum -y install lrzsz3、查看当前目录 ls4、查看所有 ls -a5、创建一个文件夹 mkdir Foldername6、同时创建几个文件夹 mkdir F1 F2 F37、删除文件夹、文件 rm -rf F18、删除符合条件的 rm -rf *9、创建文件 touch jn.txt10、编辑文件 vim jn.txt 再按i,进入编辑模式,编辑好后再去按esc键结束编辑,最后按shift+;(注意ctrl+shift关掉输入法),最后,保存退出,输x;不保存退出,输q!11、返回最顶层目录...
            5 5 3939
            分享
          •   据DigiTimes的报道,由于台积电美国晶圆厂的芯片制造成本远高于中国台湾,台积电正准备将这些额外的成本转嫁给其客户。  其中,台积电美国晶圆厂的代工价格或将比台湾晶圆厂高出30%,也就是说,台积电美国客户将需要为美国制造的芯片多支付30%的费用。  报道称,台积电已经开始与客户讨论分别在美国和日本的两个海外代工厂的订单和定价,这两个工厂预计2024年底开始量产。  业内人士认为,以台积电N4和N5工艺技术生产的芯片在美国的价格将比中国台湾地区的高20%-30%,而在日本熊本工厂以N28/N22以及N16/N12节点生产的旧工艺芯片的价格可能比在中国台湾制造的类似芯片高10%-15%。 ...
            0 0 709
            分享
          •   在我有限的软件测试经历里,曾有一段专职的自动化测试经历。  接触自动化  那时第一次上手自动化测试,团队里用的是Python,接口自动化测试的框架是requests+Excel+Jenkins,APP自动化测试的框架是Appium。  整个公司当时有一款已有的APP,因此在试用期内,我的任务是完成对已有APP的自动化脚本编写和调试。  记得当时刚开始去,很没有经验,在跟功能测试同学了解了业务之后,只顾埋着头部署环境,突然有一天,测试主管问我,是否要输出一份自动化测试用例。我恍然大悟,于是把功能测试的用例拿来参考了一下,对用例做了一次筛选,输出了一份自动化测试用例(现在回过头看,当时的做法真...
            0 0 638
            分享
      • 51testing软件测试圈微信