1、事务的几个概念
中止事务:事务在执行过程中发生故障,不能执行完成的事务。可以进行事务回滚,保持数据库的一致性。
事务回滚:将中止事务对数据库的更新操作撤销称为事务回滚。
已提交事务:成功执行完成的事务称为已提交事务。已提交的事务不能进行回滚操作,必须由程序员手工执行一个补偿事务才能撤销提交的事务对数据库的影响。
2、事务的状态
事务执行的情况:事务成功执行,数据库进入一个新的一致状态;事务因为故障或其他原因未能够成功执行,这个时候数据库处于不一致状态,需要对未成功执行的事务造成的变更进行回滚操作,即事务回滚。
2.1 事务的五种状态
活动状态:事务的初始状态,事务执行时处于这个状态。
部分提交状态:当操作序列的最后一条语句自动执行后,事务处于部分提交状态。此时事务虽然已经完全执行,但由于实际输出可能还临时驻留在内存中,在事务成功完成之前还有可能出现硬件故障,事务仍有可能中止的情况。因此部分提交状态不表示事务一定成功执行。
失败状态:因为硬件或逻辑等错误,使得事务不能继续正常执行,事务就会进入失败状态,然后必须执行回滚操作,然后事务就进入中止状态。
中止状态:事务回滚并且数据库恢复到事务开始执行前的状态。
提交状态:事务成功完成后,称事务处于提交状态。只有事务处于提交状态后,才表明事务已经提交。
2.2 事务的状态转换
begin transation:开始执行事务,使得事务处于活动状态。
end transation:表示事务中所有对数据库的操作都已经完成。
commit transation:标志事务已经成功完成。、,事务中对数据库的操作已经安全存入数据库,事务进入提交状态,结束事务的运行。
abort transaction:标志事务进入失败状态,系统撤销事务中所有操作对数据库的影响,结束事务的运行。
2.3 事务进入中止状态一般会有以下两种选择
1、重启事务:如果事务是因为软、硬件错误引起,不是事务内部逻辑错误所产生时,一般会采用重启事务的方法。重启事务可以理解为一个新的事务。
2、杀死事务:这种选择通常是因为事务中内部逻辑造成的错误或者输入的错误。
IT技术分享社区
个人博客网站:https://programmerblog.xyz
文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识