事务处理

事务概述

当使用事务修改多个数据表时,如果在处理的过程中出现了某种错误,例如系统死机或突然断电等情况,则返回结果是数据全部没有被保存。因为事务处理的结果只有两种:一种是在事务处理的过程中,如果发生了某种错误则整个事务全部回滚,使所有对数据的修改全部撤销,事务对数据库的操作是单步执行的,当遇到错误时可以随时地回滚;另一种是如果没有发生任何错误且每一步的执行都成功,则整个事务全部被提交。事务包含4种重要的属性,被统称为ACID(原子性、一致性、隔离性和持久性),一个事务必须通过ACID。

操作事务

(1)执行COMMIT语句提交事务。
(2)指定ROLLBACK语句撤销事务。
(3)执行一条数据定义语句。如果该语句执行成功,那么Oracle系统会自动执行COMMIT命令;否则,Oracle系统会自动执行ROLLBACK命令。
(4)执行一个数据控制命令,比如,GRANT、REVOKE等控制命令,这种操作执行完毕,Oracle系统会自动执行COMMIT命令。
(5)正常地断开数据库的连接、正常地退出SQL*Plus环境,则Oracle系统会自动执行COMMIT命令;否则,则Oracle系统会自动执行ROLLBACK命令。
1.提交事务(commit语句):
提交事务是指把对数据库进行的全部操作持久性地保存到数据库中,这种操作通常使用COMMIT语句来完成。在使用该语句提交事务时,Oracle系统内部会按照如下顺序进行处理。
(1)首先在回滚段内记录当前事务已提交,并且声称一个唯一的系统该编号(SCN),以唯一标识这个事务。
(2)然后启动后台的日志写入进程(LGWR),将SGA区的重做日志缓冲区中的数据和当前事物的SCN写入重做日志文件中。
(3)接着Oracle服务器开始释放事务处理所使用的系统资源。
(4)最后显示通知,告诉用户事务已经成功提交完毕。
2.回滚事务(rollback语句):
回退事务是指撤销对数据库进行的全部操作,Oracle利用回退段来存储修改前的数据,通过重做日志来记录对数据所做的修改。如果要回退整个事务,Oracle系统内部将会执行如下操作过程。
(1)首先使用回退段中的数据撤销对数据库所做的修改。
(2)然后Oracle后台服务进程释放掉事务所使用的系统资源。
(4)最后显示通知,告诉用户事务回退成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值