美文网首页程序园
Oracle SQL 学习笔记8- 数据库事务

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

作者: 赵阳_c149 | 来源:发表于2020-02-05 15:29 被阅读0次

什么是数据库事务

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

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

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

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

COMMIT和ROLLBACK语句的优点

  • 保证数据的一致性
  • 在数据永久改变之前,检查数据的改变
  • 对逻辑相关操作进行分组

控制事务

trans.JPG

隐式事务处理

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

  • 处理DDL语句
  • 处理DCL语句
  • 从SQL * PLUS 中退出,而没有明确指定COMMIT或者ROLLBACK

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

在COMMIT 或 ROLLBACK 之前的数据状态

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

在COMMIT之后的数据状态

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

锁定

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

  • 排它
  • 共享

tip

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

相关文章

网友评论

    本文标题:Oracle SQL 学习笔记8- 数据库事务

    本文链接:https://www.haomeiwen.com/subject/pjajxhtx.html