MySQL Transaction(事务)学习笔记

本文是关于MySQL事务的学习笔记,介绍了事务的原子性、一致性、隔离性和持久性(ACID)四大特性,并详细讲解了如何在C#代码中使用MySQL事务,包括START TRANSACTION、COMMIT、ROLLBACK等控制关键字的使用。
摘要由CSDN通过智能技术生成

一、资源入口

二、词汇表中关于Transaction的描述

  1. Transaction:是最小的工作单元(atomic units of work),可以被提交(committed)或者回滚(rolled back)。当一个事务对数据库做出多个改变/操作的时候可能发生两种状况:①、当这个事务被提交(commit)之后,这个事务对数据库所做的所有操作都成功了;②、事务被提交(commit)之后,当事务中多个操作/改变因为有某一个因为出错或者别的什么原因不能完成的时候这个事务(所有的操作/改变)不管是否已经完成了一部分,都会发生回滚(rolled backed)使数据库恢复到commit之前的状态。
  2. 事务,由 InnoDB实现,有一些属性,这些属性被统称为:(按首字母缩写)ACID具体包括:
    • atomicity(原子性)
      • 在SQL上下文中,Transaction是一个工作单元,Transaction执行commit之后:要么操作成功(Commited)数据库发生变化,要么回滚(Rall back)数据库不发生变化,工作单元是不可分割的。
      • 组成事务处理的语句形成了一个逻辑单元,不能只执行其中的一部分。换句话说,事务是不可分割的最小单元。比如:银行转帐过程中,必须同时从一个帐户减去转帐金额,并加到另一个帐户中,只改变一个帐户是不合理的。
    • consistency(一致性)
      • 事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
      • 在事务处理执行前后,MySQL数据库是一致的。也就是说,事务应该正确的转换系统状态。比如:银行转帐过程中,要么转帐金额从一个帐户转入另一个帐户(在不考虑转账费用的情况下,转账方减少的金额与收账方的增加的金额应该是相等),要么两个帐户都不变,没有其他的情况。
    • isolation(隔离性)
      • 一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
    • durability(持久性)
      • 持久性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。

三、对Transaction的控制关键字

  1. START TRANSACTION or BEGIN start a new transaction.
  2. COMMIT commits the current transaction, making its changes permanent.
  3. ROLLBACK rolls back the current transaction, canceling its changes.
  4. SET autocommit disables or enables the default autocommit mode for the current session.
    • 设置自动commit,禁止或启用当前回话的自动提交模式。
    • This mode is not recommended for working with InnoDB tables with transactions that span several statements.
      <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值