MySQL数据库的事务管理简介


事务简介

事务是一个不可分割的数据库操作序列,也是数据库并发控制的基本单位,事务在逻辑上是一组操作,要么都执行,要么都不执行,其执行的结果必须使数据库从一种一致性状态到另一种一致性状态。事务有以下ACID四大特性:

  • A(Atomicity):原子性,一组操作要么全部成功,要么全部失败,不可能只成功执行一部分操作。
  • C(Consistency):一致性,执行后系统总是会从一个一致性的状态转移到另一个一致性的状态,不会存在中间状态。
  • I(Isolation):隔离性,通常来说一个事务在完全提交之前,对其它事务来说是不可见的。
  • D(Durability):持久性,一旦事务提交,最终状态或结果就确定了,哪怕系统崩溃也不会影响到这个事务的结果。

使用示例

事务的自动提交

默认情况下,MySQL的事务是自动提交(autocommit)的。事务的自动提交是指在执行每个单独的SQL语句后,自动将其视为一个事务并提交。

1、在终端1上连接MySQL数据库并插入数据。

mysql

2、在终端2上连接MySQL数据库并查看数据,两边数据一致。

mysql

事务的开启

在MySQL中可以使用start transaction语句开启事务,开启事务意味着自动提交功能关闭。

1、在终端1上连接MySQL数据库,开启事务并插入数据。

mysql

2、在终端2上连接MySQL数据库并查看数据,因为终端1上插入的数据并未提交,所以终端2无法查看终端1插入的数据。

mysql

事务的提交

在MySQL中可以使用commit语句提交事务。

1、在终端1上将事务中插入的数据提交。

mysql

2、在终端2上查看数据,因为事务的提交,两边数据一致。

mysql

事务的回滚

在MySQL中可以使用rollback语句回滚事务。

1、在终端1上连接MySQL数据库,开启事务并插入数据,然后回滚。

mysql

2、在终端2上查看数据,因为终端1的事务回滚,终端2无法查看终端1插入并回滚的数据。

mysql

发表评论

评论数量:0