1.概述
(1)事务是一个不可分割的工作逻辑单元,数据库的事务包含了一组数据库操作命令,事务把这组命令作为一个整体一起向系统提交或撤销操作请求,即这组命令要么同时成功,要么同时失败。
(2)事务的三个操作
1)开启事务:开启事务后的操作命令只是预操作,并不会持久化更改数据,只有当提交事务后才会执行。
start transaction; -- 或 begin;
2)提交事务:提交事务后,才会真正执行操作命令,对数据进行持久化更改。
commit;
3)回滚事务:如果出现异常,撤销临时操作,回滚到开启事务之前的动作。
rollback;
【注意】MySQL中事务是默认自动提交的。
2.事务的四大特征(ACID)
(1)原子性(Atomicity):事务是不可分割的最小操作单元,要么同时成功,要么同时失败。
(2)一致性(Consistency):事务完成时,必须使所有的数据都保持一致状态(质量守恒定律)。比如A给B转账500,转账前二者一共有2000块,转账后二者一共还是应该有2000块。
(3)隔离性(Isolation):一个事务的执行不被另一个事务的执行干扰。
(4)持久性(Durability):一个事务一旦提交,它对数据库中数据的改变是永久性的。