当前位置: 移动技术网 > IT编程>数据库>Oracle > Oracle 事务处理

Oracle 事务处理

2019年05月28日  | 移动技术网IT编程  | 我要评论

  事务是又一系列语句构成的逻辑工作单元,通常是为了完成一定业务逻辑而将一条或者多条语句 “封装” 起来,使它们与其他语句之间出现一个逻辑上的便捷,并形成相对独立的一个工作单元。

  一、事务概述

    当使用事务修改多个数据表时,如果在处理的过程中出现了某种错误,例如系统死机或者出现其他等情况,则返回结果是全部数据均没有被保存。

    对事务处理的结果只有两种:

      一种是在事务处理的过程中,如果发生了某种错误则整个事务全部回滚,使所有对数据的修改全部撤销,事务对数据库的操作是单步执行的,当遇到错误时可以随时地回滚;

      另一种是如果没有发生任何错误且每一步的执行都成功,则整个事务全部被提交。

    从而可以看出,有效地使用事务不但可以提高数据的安全性,而且还可以增强数据的处理效率。

    事务包含 4 种重要的属性,被统称为 acid (原子性、一致性、隔离性和持久性),一个事务必须通过 acid。

    (1)原子性(atomic):  事务是一个整体的工作单元,事务对数据库所做的操作要么全部执行,要么全部取消。假如某条语句执行失败,则所有语句全部回滚。

    (2)一致性(condemoltent):  事务在完成时,必须使所有的数据都保持一致状态。在相关的数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。如果事务成功,则所有数                                                                   据将变成一个新的状态;如果事务失败,则所有数据将处于开始之前的状态

    (3)隔离性(isolated):   由事务所作的修改必须与其他事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务                                                          不会查看中间状态的数据。

    (4)持久性(durability):  当事务提交后,对数据库所做的修改就会永久保存下来。

 

 

  二、操作事务

    oracle 11g 中的事务是隐式自动开始的,它不需要用户显示地执行开始事务语句。但对于事务的结束处理,则需要用户进行指定的操作,通常在以下情况时, oracle 认为一个事务结束了。

    (1) 执行 commit 语句提交事务。

    (2) 执行 rollback  语句撤销事务。

    (3) 执行一条数据定义语句,如果 create、drop 和 alter 等语句。如果该语句执行成功,那么 oracle 系统会自动执行 commit 命令;否则, oracle 系统会自动执行 rollback 命令。

    (4) 执行一个数据控制语句,比如 grant、revoke 等控制命令,这种操作执行完毕, oracle 系统会自动执行 commit 命令。

    (5) 正常地断开数据库的连接、正常地退出 sql*plus 环境,则 oracle 系统会自动执行 commit 命令;否则, oracle 系统会自动执行 rollback 命令。

    总结: oracle 结束一个是事务归根结底是那么执行 commit 命令,要么执行 rollback 命令。

    1、提交事务(commit语句)

    2、回滚事务(rollback语句)

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网