1 | 中止事务 | 指在执行过程中发生故障,不能执行完成的事务 | 可以回滚,由DBMS负责执行 |
3 | 已提交事务 | 成功完成的事务 | 不能回滚,必须手工执行“补偿事务(Compensating Transaction)”才能撤销对数据库的影响(唯一方法) 如银行冲账(纠正错误业务) |
注意:事务一旦提交,就不能中止
2.事务状态
事务是数据库的基本执行单元。
结果 | 说明 | |
1 | 事务执行成功 | 数据库进入一个新的一致状态 即使出现系统故障,这个状态依然保持 不能通过中止撤销已造成的影响,必须执行''补偿事务”来撤销 |
2 | 事务执行失败(故障或其他原因) | 已对数据库做了修改,极有可能导致数据库处于不一致状态 需对未能成功执行的事务(中止事务)进行撤销操作(也称回滚ROLLBACK) 事务已回滚:中止事务造成的变更已经撤销 |
1)事务的五种状态
状态 | 状态说明 | 状态转换 | |
1 | 活动状态 | 事务初始状态,事务执行时处于这个状态 | |
2 | 部分提交状态 | 当事务操作序列最后一条语句自动执行后的状态,并不等于成功执行(实际输出可能仍然驻留内存,执行时可能出现硬件故障导致事务中止)。 | |
3 | 失败状态 | 由于硬件或逻辑等错误,使得事务不能继续正常执行的状态。 事务必须进行回滚(ROLLBACK),进入中止状态 | |
4 | 中止状态 | 事务回滚且数据库恢复到事务开始执行前的状态 | 重启事务(软硬件故障导致) 注意:被视为一个新事务 |
杀死事务(事务内部逻辑错误、输入错误、找不到数据等) | |||
5 | 提交状态 | 事务成功完成后的状态,此时事务已提交 |