1 前言
1.1 背景-- 业务的回滚
当一个业务执行多条SQL语句时,如果其中一条SQL执行错误,则需要回退到最开始的地方,保证业务逻辑的正确性和业务的完整性,比如转账业务;事务可以完成回退的功能,在事务中该回退被称为回滚。
1.2 事务Tansaction的定义
- 事务是一个操作序列;该操作序列要么都做,要么都不做,即是一个不可分割的工作过程单元,是数据库环境中的逻辑工作单位。
- 事务在数据的增删改时才会适用;
- 事务的本质是加了锁,进程锁。因此,事务在必要时才加。
2 事务语句
2.1 事务操作流程
- 开启事务begin
- 提交事务commit
- 回滚 rollback
2.2 案例 – 以银行转账业务入例:
适用begin开始事务;
在执行后续SQL时,表中的数据不会改变。
当成功执行完commit之前的所有SQL语句后,表中的数据才会改变。
当begin到commit之前的SQL语句执行错误时,需要调用roolback对事务进行回滚。
注意:在一个进程对一个表开启了事务,另一个进程再该表的数据进行修改时,会等待前一个进程完成事务后,才会对表进行操作。