12.1.3 事务的状态

2025-08-06 06:23:07 更新






1

中止事务

指在执行过程中发生故障,不能执行完成的事务

可以回滚,由DBMS负责执行

3

已提交事务

成功完成的事务

不能回滚,必须手工执行“补偿事务(Compensating Transaction)”才能撤销对数据库的影响(唯一方法)

如银行冲账(纠正错误业务)

注意:事务一旦提交,就不能中止


2.事务状态

事务是数据库的基本执行单元。


结果

说明

1

事务执行成功

数据库进入一个新的一致状态

即使出现系统故障,这个状态依然保持

不能通过中止撤销已造成的影响,必须执行''补偿事务”来撤销

2

事务执行失败(故障或其他原因)

已对数据库做了修改,极有可能导致数据库处于不一致状态

需对未能成功执行的事务(中止事务)进行撤销操作(也称回滚ROLLBACK)

事务已回滚:中止事务造成的变更已经撤销


1)事务的五种状态


状态

状态说明

状态转换

1

活动状态

事务初始状态,事务执行时处于这个状态


2

部分提交状态

当事务操作序列最后一条语句自动执行后的状态,并不等于成功执行(实际输出可能仍然驻留内存,执行时可能出现硬件故障导致事务中止)。


3

失败状态

由于硬件或逻辑等错误,使得事务不能继续正常执行的状态。

事务必须进行回滚(ROLLBACK),进入中止状态


4

中止状态

事务回滚且数据库恢复到事务开始执行前的状态

重启事务(软硬件故障导致)

注意:被视为一个新事务

杀死事务(事务内部逻辑错误、输入错误、找不到数据等)

5

提交状态

事务成功完成后的状态,此时事务已提交