事务
事务
事务的作用
事务就是要完成的一件事情,比如购物、转账、做饭等。由多个步骤组成,如果其中某个步骤失败了,事务就失败了。
事务Transaction,是指作为一个基本工作单元执行的一系列SQL语句的操作,要么完全地执行,要么完全地都不执行。
事务四大特性ACID
- 原子性(Atomicity)
- 一致性(Consistency)
- 隔离性(Isolation)
- 持久性(Durability)
原子性
一个事务必须被视为一个不可分割的最小单元。一个事务的所有操作,要么全部成功,要么全部失败。
一致性
数据库总是从一个一致性状态转换到另一个一致性的状态。
隔离性
一个事务所做的修改在最终提交以前,对其他事务是不可见的。(一个事务转账时,另一个事务看不到账户的余额)
持久性
事务一旦被提交,对其做的修改会永久保存到数据库。
事务的使用
开启事务:事务开启后执行修改命令,变更会维护到本地缓存中,而不维护到物理表中。BEIGN;
或START TRANSACTION;
提交事务:将缓存中的数据变更维护到物理表中。COMMIT;
MySQL的事务是默认提交的,Oracle是默认不提交的
通过以下命令查询
-- 查询提交方式,值为1则是默认提交,MySQL中默认值为1
SELECT @@AUTOCOMMIT;
-- 更改提交方式
SET @@AUTOCOMMIT = 0;
回滚事务:放弃缓存中变更的数据(没有commit之前),表示事务执行失败,应该回到开始事务前的状态。ROLLBACK;