就是指一组相关的SQL操作,我们所有的操作都是事务中的。

注意:在数据库中,执行业务的基本单位是【事务】,不是以某一条SQL。

数据库在默认情况下,事务是都打开的,也就是说它一种处在事务当中的,一个事务的结束,代表着下一个事务的开启。

执行commit或者rollback指令时,会结束当前事务

作用:用来保证数据的平稳性和可预测性

例如:银行转账业务

【SQL1:A账号向B账号转账10000

update tbl_account set balance=balance-10000 where accountNo=A账号;

SQL2:

update tbl_account set balance=balance+10000 where accountNo=B账号;

SQL1和SQL2必须处在同一个事务中,从而保证同时成功或者同时失败。】

事务的四大特性(ACID):

atomic,原子性,事务是不可分割的,要么同时成功,要么同时失败;

consistency,一致性,事务一旦结束,内存中的数据和数据库中的数据是保持一致;

isolation,隔离性,事务之间互不干扰,一个事务的结束意味着下一个事务的开启;

duration,持久性,事务一旦提交,则数据持久化到数据库中,永久保存

在oracle中,操作事务的命令:

1.commit,提交事务

把事务中所有的数据持久化到磁盘中

2.rollback to 回滚点,回滚事务

把事务中所做的操作全部取消,回到初始化状态

3.savepoint 回滚点,设置回滚点

事务回滚时,回滚到起点

总结:

1.目前主流的数据库都是支持事务的,而且其中Oracle支持的最好

2.一个事务不能读取到另一个事务还没有提交的数据

3.DDL语句都会自动提交事务

4.DML语句不会自动提交事务,需要手动提交commit

多事务的并发处理机制:

原因:多个事务同时操作一个表中的同一行数据,如果这些操作同时修改的话,就会产生并发问题,如果不处理,则会造成数据的不一致的情况

数据库可能产生的并发问题包括:

1.脏读

是指一个事务正在访问数据,并且对这个数据进行修改,而这种修改还没有提交到数据库中,而另一个事务也访问了这个数据,并且使用了这个数据。

解决方法:一个事务在修改数据时,该数据不能被其他事务访问

2.不可重复读:

是指一个事务多次读取同一条记录,如果此时另一个事务也访问并且修改了该数据,则就会出现多次读取出现数据不一致的情况,原来的数据变成了不可重复读取的数据。

解决方法:只有在修改事务完全提交过后才可以读取数据

3.幻读

是指一个事务修改表中的多行记录,但是此时另一个事务对该表格进行了插入数据的操作,则第一个事务会发现表格中会出现没有被修改的行,就像发生了幻象一样;

解决方法:在一个事务提交数据之前,其他事务不能添加数据

【Oracle中采用‘锁’来做并发处理】

1.表级排它锁(X)exclusive mode

2.表级共享锁(S)share mode

3.表中行级排它锁share row exclusive

注:这三种锁是通过专门的命令来申请的

语法:

lock table tbl_name in mode;

例如:

--以共享锁锁表

lock table tbl_emp in share mode;

--以排它锁锁表

lock table tbl_emp in exlusive mdoe;

4.行级共享锁(RS)row share

5.行级排它锁(RX)row exclusive

注:这两种锁无需通过专门的命令申请,而是通过DQL和DML来自动申请的

注意:

1.所有的DQL语句默认情况下都会自动申请RS锁

2.所有的DML语句默认情况下都会自动申请RX锁,每一行记录都有唯一的RX锁

3.在项目中,为了满足业务要求,一般select语句需要申请RX锁

select语句通过for update来申请RX锁:

select * from s_emp for update;

select * from s_emp for update wait 5;等待5秒

select * from s_emp for update nowait;

Oracle DTL 数据事务语言

标签:行记录   情况下   开启   microsoft   支持   行业   数据不一致   定义   sel

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:http://www.cnblogs.com/ty-v/p/7880497.html

oracle事务处理语言,Oracle DTL 数据事务语言相关推荐

  1. 数据操作语言DML及数据定义语言DDL的区别

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 数据操作 ...

  2. SQL中数据操作语言 (DML) 和数据定义语言 (DDL)

     可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL). SQL (结构化查询语言)是用于执行查询的语法.但是 SQL 语言也包含用于更新.插入和删除记录的语法. ...

  3. oracle事务处理编号,oracle事务处理

    预习事务处理 一 事务概念:由一组sql语句组成的一个逻辑工作单元 二 事务的属性: 2.1 原子性 一个事务是一个不可分割的逻辑工作单元,事务所包含的所有工作单元要么不做,要么全做 例如:银行转账业 ...

  4. r语言 读服务器数据,R语言数据实战 | 安装R语言

    原标题:R语言数据实战 | 安装R语言 1.R的获取和安装 获取和安装R很容易(这也是它"亲民"的地方),具体步骤如下: Step 1: 登陆R语言官方网站https://www. ...

  5. r语言读取excel数据_R语言操纵Excel进行数据透视与批处理

    作者:黄天元,复旦大学博士在读,热爱数据科学与开源工具(R),致力于利用数据科学迅速积累行业经验优势和科学知识发现,涉猎内容包括但不限于信息计量.机器学习.数据可视化.应用统计建模.知识图谱等,著有& ...

  6. r语言读取excel数据_R语言 | 更快的表格文件读取方法!

    友情提示:蓝色下划线字体为引文,请保持警惕! 使用R语言读取 Affymetrix Human Exon 1.0 ST Array 芯片平台探针注释文件: https://www.affymetrix ...

  7. 计算机编程c 语言实型数据,C语言-基础教程-C语言实型数据

    C语言-基础教程-C语言实型数据 分类:计算机等级 | 更新时间:2016-07-08| 来源:转载 2.4.1 实型常量 实型常量又称浮点常量,是一个十进制表示的符号实数.符号实数的值包括整数部分. ...

  8. python与r语言处理excel数据_R语言 | 读写txt、csv、excel文件

    前段时间看到plotnine库(封装的R语言ggplot2)作的图太美了,有点想重新拾起R语言^_^ R语言代码略带凌乱,讲真的还是更喜欢Python代码简洁.不过好几年不琢磨R语言,对R语言代码的凌 ...

  9. c语言编程抠数据,C语言编程积累2

    1.implict declartion of function 指的是在预处理时没有函数的申明,但该函数在别的函数中进行了编译与调用,编译可以完成链接但是会给出warning,需要提前申明 2. s ...

  10. c语言多线程收发数据,c语言多线程队列读写

    最近用c语言写了个简单的队列服务,记录一下,文件结构为 main.c queue.c queue.h,代码如下: 主函数 #define NUM_THREADS 200 #include #inclu ...

最新文章

  1. 利用emu8086学习汇编int 10h功能
  2. android 根据版本,Android – 根据构建类型更改flavor版本名称
  3. OpenCV学习:仿射变换+投射变换+单应性矩阵
  4. python如何关闭multiprocess_python 开启进程两种方法 multiprocessing模块 介绍
  5. leetcode306 2022.1.10
  6. C语言汇编pdf,c语言程序代码[汇编].pdf
  7. IT职业发展与诺兰模型
  8. android飞屏app下载地址,飞屏下载安卓最新版_手机app官方版免费安装下载_豌豆荚...
  9. RazorPage介绍(一)
  10. G502使用计算机配置,罗技g502dpi设置配置文件 | 手游网游页游攻略大全
  11. Dukto-R6超级实用的免费跨平台局域网文件/文件夹传输工具
  12. 律动荆棘皇冠 Crown of Thorns
  13. 复古冰雪传奇H5游戏详细图文架设教程
  14. Excel知识技能汇总
  15. 计算机四级网络工程师
  16. 第27次CCF-CSP计算机软件能力认证(2022-09-18)
  17. Mac下查找支持的字体
  18. BugKu社工-进阶收集
  19. 小程序另一种解析json
  20. 缓解论文写作压力的小妙招

热门文章

  1. 2015年最新互联网概念股一览表
  2. php微信 api,PHP微信API接口类
  3. 4.React Native项目开发如何配置调试
  4. ## Android Studio 开发(四)--蓝牙通信
  5. ZZNU 1992: 情人节的尴尬
  6. 《网络攻防第二周作业》
  7. java把一个对象赋值给另一个对象
  8. 005_Sketch 工具使用手册
  9. js之win10计算器
  10. 基于FPGA的LED全彩图形显示控制器设计