oracle事务处理编号,oracle事务处理
预习事务处理
一 事务概念:由一组sql语句组成的一个逻辑工作单元
二 事务的属性:
2.1 原子性
一个事务是一个不可分割的逻辑工作单元,事务所包含的所有工作单元要么不做,要么全做
例如:银行转账业务。A向B转账,A的账户减少100,B账户增加100,这两个操作要么同事提交,要么都回退
2.2 一致性
系统在一个状态变换到另外一个状态,他们的一致性必须保持一直,事务总体上不能破坏特性环境下的任何业务规则
例如,在AB账户总金额在转账前后始终保持一致,只是有短暂的不一致。这个短暂时间发生在事务提交之前,事务提交
之后,保持一致。
2.3 隔离性
每个事务 都必须独立于其他业务执行
例如:活动事务所做的改变对并发运行的其他事务来说是不可见的,当A向B转账的同时,C向A转账,若同时进行,则A和B
之间的一致性不能满足。所以在AB事务执行过程中,其他事务不能访问当前相关的数值。
2.4 持久性
确保事务完成之后,对数据的修改是永久性的,即使发生系统故障也不会对其有影响、
例如:当AB转账完成事务提交之后,就算系统故障,数据已经被修改,转账已经成功、
注意:关于隔离性所引起的几个问题
1 更新结果丢失、在oracle默认级别下,该情况不会发生
事务1----- 更新数据 2000+200
事务2 ----- 更新数据(读取的是没有更新的结果)2000+200
事务1----- commit 2200
事务2 ---- commit 2200
本来结果应该为2400 ,但是现在只有2200,出现更新结果丢失
2 脏读 在oracle默认级别下,该情况不会发生
事务1 ---更新数据:2000+200
事务2 --更新数据:查询到的数据为2000,实际上已经为2200了,只是事务1没有提交,导致事务2读取的数据错误
事务2--commit
事务1 ---commit
3 不可重读
解释:事务1----查询数据
事务2---修改数据
事务2---commit
事务1----查询数据
此时会发现事务1中发生两次查询数据不同(数据内容上的不同天)
4 幻读
事务1 ----查询数据
事务2 ----添加或者删除(insert delete)
事务2 ----commit
事务1-----查询数据
事务1中两次查询数据条目不同
三 基本的事务处理
3.1 开始事务
在oracle中默认状态下,事务是自动启动的,不需要在代码中手动定义,(当我们执行第一句sql代码时,事务自动开启)
3.2 执行sql语句
如果有多条执行语句组成一个事务。那么必须待所有sql都执行成功,那么表示事务可以被提交,否则事务要进行回滚。
3.3 提交事务
如果事务中的所有sql都执行成功,可以通过执行commit提交事务
语句:
commit;
3.4 注意:以下情况会自动提交事务
1 当执行ddl语句时将会自动提交事务。例如 create table alter table 以及drop table
2 当执行dcl表,
3 当oracle服务被关闭的时候。 四 隔离级别 4.1 未提交读 (Read Uncomited)oracle中最低最危险级别,无法避免脏读现象,但是不允许数据更新丢失 4.2 提交读(Read Commited)是大多数数据库系统的默认级别。可以避免脏读现象,但是不可避免重复读 4.3 可重复读取(Repeatable Read)可以避免可重复读取和脏读,但是不可避免幻读。 4.4 可串行读(Serializable Read)要求事务按照顺序执行,确保事务不被干扰,但是并发性低 五 数据库中的锁 (一) 锁的种类 5.1 行级共享锁(RS row share):一个用户使用共享锁锁定某一行之后,其他用户也可以对相同列加上共享锁 加锁之后,可以查询该行,但是不能修改该行的数据。 5.2 行级排他锁(RX row exclusive):只允许某一用户对其加锁,其他用户不能再锁定。 用法 :for update 通过for update 给sql语句添加排它锁 例如:select * from emp where empno = 7369 for update;用于锁住编号为7369的一行数据, 此时,另外的用户来修改该行数据,则会一直等待该条数据释放锁,然后执行修改语句,但是某些 情况下,用户不希望等待太长时间,这时,可以设定等待时间或者设置不等待 update set sal = 1000 where empno = 7369 nowait设置不等待模式 update set sal = 1000 where empno = 7369 wait 10 设置等待10秒 如果在十秒之后,锁还没有被释放,则停止等待。 5.3 共享锁 (S share):和行级享锁差不多,只是共享锁锁住的对象是整个表。例如 lock table tableName in share mode 5.4 共享更新锁 (in share update mode) 5.5 排他模式 :只允许某一用户对其加锁,其他用户不能再锁定。不允许其他用户插入、更新和删除行,允许其他表插入数据, (二)锁的级别 行级锁:也称事务所,该锁从事务被创建开始,事务提交或者回滚释放。行级锁可以锁定某一行数据 表级锁: 备注:相应的操作自动产生锁的对象关系 1 在执行insert update delete语句时,自动产生行级排他锁 2 在执行create语句时候,自动产生共享锁(S锁) 3 在执行alter语句的时候,自动产生排他锁
oracle事务处理编号,oracle事务处理相关推荐
- ORA-28500: 连接 ORACLE 到非 Oracle 系统时返回此信息(对象名 ‘RECOVER.HS_TRANSACTION_LOG‘ 无效,ERROR ORA-02054: 未决事务处理)
今天在存储过程中通过dblink的方式从oracle中往sql server中的表插入数据时,报如下的错误: ERROR ORA-02054: 未决事务处理 15.29.1031 ORA-28500: ...
- oracle更新编号的值,更改oracle数据库编码
修改oracle 数据服务器编码 如何修改数据库oracle 的编码呢? 我使用的oracle的版本是: Oracle Database 11g Enterprise Edition Release ...
- Oracle学习笔记 --- Oracle ORA错误解决方案
今天在Debug的时候报错了如下信息: 后来综合了网上的东西,总结如下: ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常. ORA-000 ...
- cmd删除oracle监听,oracle数据库监听删除
oracle 10G for linux常用命令 oracle 10G for linux常用命令 首先以Oracle用户登录 1. $/oracle/oracle/app/product/101/b ...
- oracle成本岗,ORACLE的成本管理.doc
ORACLE的成本管理 ORACLE ERP COST 第一章 成本管理系统概览 1.1 成本管理系统概览 Oracle Cost Management 是一个全面吸收的.永续的期间成本计算系统,可用 ...
- oracle 峰度 函数,Oracle Database 21c 十大新特性一览
摘要:Oracle 考虑到 2020 年我们的客户将面临前所未有的经济和业务中断.我们决定不将 Database 20c Preview 版本升级为 General Availability. 相反, ...
- oracle 快捷 企业,Oracle自治数据库提供APEX 20.1,助企业快速构建应用
Oracle自治数据库(Oracle Autonomous Database)现已提供Oracle APEX 20.1,Oracle Application Express(APEX)是一个低代码应用 ...
- rds oracle,Amazon RDS Oracle数据库托管
您可通过两种不同的许可模式运行 Amazon RDS for Oracle,即"附带许可"和"使用自有许可 (BYOL)".在"附带许可"服 ...
- oracle 9i hwm,Oracle 10g HWM原理及性能优化
摘 要: HWM(High Water Mark)是表中已经使用过的存储空间与未使用过的存储空间之间的分界线,HWM对全表扫描的性能有非常大的影响.当全表扫描时,Oracle会读取HWM下所有的块,即 ...
最新文章
- SharePoint 2010中的客户端AJAX应用——ASP.NET AJAX模板
- 数据结构与算法之美-目录
- FTP服务(vsftpd)配置
- 搜索推荐炼丹笔记:酒店搜索位置偏差的边际重要性
- linux常用命令(1)帮助命令man使用
- leetcode 441. 排列硬币(Java版)
- 老子学不动系列:Vue 3.0 新特性预览
- 100个犯人和一个亮灯泡_每个人都在一个开放的组织中更换灯泡
- sklearn报错DeprecationWarning: the imp module is deprecated in favour of importlib
- 本地创建多个ssh-key
- 景驰无人车余波:王劲“嫡系”忽然发难,官方回应辞退员工所述不实
- java 对象给对象赋值为空_java中,只声明一个对象不赋值,与声明一个对象并赋为 null 的区别...
- pe系统如何读取手机_五分钟教会你pe系统制作
- 软件研发的6sigma案例解析
- Spring Cloud Open Feign系列【23】OAuth2FeignRequestInterceptor、BasicAuthRequestInterceptor拦截器解析
- python批量图像处理_基于python代码批量处理图片resize
- J2ME移动开发平台搭建
- 系统安全 --------- 账号安全管理
- web前端《叮叮书店》编写
- Android电源管理分析