MySQL事务
事务简介
事务:一个或一组sql语句组成一个执行单元,要么全部执行,要么全部不执行。
举例: 转账
用户A需要从银行转账,那么就涉及到转出的账户需要扣掉转账的金额,转入的账户需要加上转入的金额,这两个操作的执行为了确保数据的一致性,需要同时成功或同时失败,因此就需要使用事务来进行处理。
和事务相关的sql语句
commit :提交事务
rollback :回滚事务
在MySQL中默认情况下,事务是自动提交的,执行一条DML语句即开启了事务,并且自动提交了事务
事务的特性(ACID)
原子性(Atomicity):事务是最小单位,不可再分。实现事务的原子性,是基于日志的Redo/Undo机制。
一致性(Consistent):事务要求所有的DML语句操作的时候,必须保证同时成功或者同时失败。事务前后的状态需要一致,也可以理解为数据一致性。
隔离性(Isolation):事务A和事务B之间具有隔离性,可以设置事务的隔离级别。
持久性(Durable):是事务的保证,事务终结的标志(内存的数据持久到硬盘文件中)。在一个事务提交之后,事务的状态就会被持久化到数据库中,对数据的更新、新增等操作将会持久化到数据库中。