事务

事务

事务的作用

事务就是要完成的一件事情,比如购物、转账、做饭等。由多个步骤组成,如果其中某个步骤失败了,事务就失败了。

事务Transaction,是指作为一个基本工作单元执行的一系列SQL语句的操作,要么完全地执行,要么完全地都不执行。

事务四大特性ACID

  1. 原子性(Atomicity)
  2. 一致性(Consistency)
  3. 隔离性(Isolation)
  4. 持久性(Durability)

原子性

一个事务必须被视为一个不可分割的最小单元。一个事务的所有操作,要么全部成功,要么全部失败。

一致性

数据库总是从一个一致性状态转换到另一个一致性的状态。

隔离性

一个事务所做的修改在最终提交以前,对其他事务是不可见的。(一个事务转账时,另一个事务看不到账户的余额)

持久性

事务一旦被提交,对其做的修改会永久保存到数据库。

事务的使用

开启事务:事务开启后执行修改命令,变更会维护到本地缓存中,而不维护到物理表中。BEIGN;START TRANSACTION;

提交事务:将缓存中的数据变更维护到物理表中。COMMIT;
MySQL的事务是默认提交的,Oracle是默认不提交的
通过以下命令查询

-- 查询提交方式,值为1则是默认提交,MySQL中默认值为1
SELECT @@AUTOCOMMIT;
-- 更改提交方式
SET @@AUTOCOMMIT = 0;

回滚事务:放弃缓存中变更的数据(没有commit之前),表示事务执行失败,应该回到开始事务前的状态。ROLLBACK;