程序园

Oracle SQL 学习笔记8- 数据库事务

2020-02-05  本文已影响0人  赵阳_c149

什么是数据库事务

一组SQL操作集合,要么全部完成,要么全部废弃。一个事务可以包含下列语句:

  1. 对数据做出一致性修改的DML语句
  2. 一个DDL语句
  3. 一个DCL语句

事务以第一个可执行的SQL语句开始,以下列情况结束:

  1. 执行COMMIT或者ROLLBACK语句
  2. 执行DDL或者DCL语句
  3. 用户退出
  4. 系统崩溃

COMMIT和ROLLBACK语句的优点

控制事务

trans.JPG

隐式事务处理

在下列情况下,会发生一个自动提交:

当SQL * PLUS中断(断网)或者系统失败(崩溃,断电)时自动进行回滚。

在COMMIT 或 ROLLBACK 之前的数据状态

之前的状态是可以被恢复的。当前用户可以用SELECT语句来查看DML操作后的结果,而其他用户是看不到当前用户使用DML语句进行数据操作的结果的。而且,由于产生改变的数据被加了锁,其他用户不能改变这些行。

在COMMIT之后的数据状态

COMMIT之后,数据的改变将被永久的反应到数据库中去,而事务前面的数据状态将被永久的丢弃。所有的用户都可以查看结果。而且,加在产生改变的行上的数据被解锁,也就是说这些行对于其他用户是可用的。所有的保存点被释放。

锁定

在并发事务之间,Oracle 锁阻止可能产生的破坏性相互影响。这种锁不需要用户进行干预,自动使用,在事务期间使用,事务结束后释放。注意DML的锁是行锁。
锁有两种基本的方式:

tip

DELETE/UPDATE之前要先SELECT,然后将SELECT改成DELETE/UPDATE。

上一篇 下一篇

猜你喜欢

热点阅读