文章目录
- 1 概述
- 2 事务
- 2.1 四大特性(ACID)
- 2.2 并发
- 2.3 隔离级别
- 2.4 开始和结束
1 概述
#mermaid-svg-o9tSOmlrbjw8oG2j .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-o9tSOmlrbjw8oG2j .label text{fill:#333}#mermaid-svg-o9tSOmlrbjw8oG2j .node rect,#mermaid-svg-o9tSOmlrbjw8oG2j .node circle,#mermaid-svg-o9tSOmlrbjw8oG2j .node ellipse,#mermaid-svg-o9tSOmlrbjw8oG2j .node polygon,#mermaid-svg-o9tSOmlrbjw8oG2j .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-o9tSOmlrbjw8oG2j .node .label{text-align:center;fill:#333}#mermaid-svg-o9tSOmlrbjw8oG2j .node.clickable{cursor:pointer}#mermaid-svg-o9tSOmlrbjw8oG2j .arrowheadPath{fill:#333}#mermaid-svg-o9tSOmlrbjw8oG2j .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-o9tSOmlrbjw8oG2j .flowchart-link{stroke:#333;fill:none}#mermaid-svg-o9tSOmlrbjw8oG2j .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-o9tSOmlrbjw8oG2j .edgeLabel rect{opacity:0.9}#mermaid-svg-o9tSOmlrbjw8oG2j .edgeLabel span{color:#333}#mermaid-svg-o9tSOmlrbjw8oG2j .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-o9tSOmlrbjw8oG2j .cluster text{fill:#333}#mermaid-svg-o9tSOmlrbjw8oG2j div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-o9tSOmlrbjw8oG2j .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-o9tSOmlrbjw8oG2j text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-o9tSOmlrbjw8oG2j .actor-line{stroke:grey}#mermaid-svg-o9tSOmlrbjw8oG2j .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-o9tSOmlrbjw8oG2j .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-o9tSOmlrbjw8oG2j #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-o9tSOmlrbjw8oG2j .sequenceNumber{fill:#fff}#mermaid-svg-o9tSOmlrbjw8oG2j #sequencenumber{fill:#333}#mermaid-svg-o9tSOmlrbjw8oG2j #crosshead path{fill:#333;stroke:#333}#mermaid-svg-o9tSOmlrbjw8oG2j .messageText{fill:#333;stroke:#333}#mermaid-svg-o9tSOmlrbjw8oG2j .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-o9tSOmlrbjw8oG2j .labelText,#mermaid-svg-o9tSOmlrbjw8oG2j .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-o9tSOmlrbjw8oG2j .loopText,#mermaid-svg-o9tSOmlrbjw8oG2j .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-o9tSOmlrbjw8oG2j .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-o9tSOmlrbjw8oG2j .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-o9tSOmlrbjw8oG2j .noteText,#mermaid-svg-o9tSOmlrbjw8oG2j .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-o9tSOmlrbjw8oG2j .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-o9tSOmlrbjw8oG2j .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-o9tSOmlrbjw8oG2j .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-o9tSOmlrbjw8oG2j .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-o9tSOmlrbjw8oG2j .section{stroke:none;opacity:0.2}#mermaid-svg-o9tSOmlrbjw8oG2j .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-o9tSOmlrbjw8oG2j .section2{fill:#fff400}#mermaid-svg-o9tSOmlrbjw8oG2j .section1,#mermaid-svg-o9tSOmlrbjw8oG2j .section3{fill:#fff;opacity:0.2}#mermaid-svg-o9tSOmlrbjw8oG2j .sectionTitle0{fill:#333}#mermaid-svg-o9tSOmlrbjw8oG2j .sectionTitle1{fill:#333}#mermaid-svg-o9tSOmlrbjw8oG2j .sectionTitle2{fill:#333}#mermaid-svg-o9tSOmlrbjw8oG2j .sectionTitle3{fill:#333}#mermaid-svg-o9tSOmlrbjw8oG2j .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-o9tSOmlrbjw8oG2j .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-o9tSOmlrbjw8oG2j .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-o9tSOmlrbjw8oG2j .grid path{stroke-width:0}#mermaid-svg-o9tSOmlrbjw8oG2j .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-o9tSOmlrbjw8oG2j .task{stroke-width:2}#mermaid-svg-o9tSOmlrbjw8oG2j .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-o9tSOmlrbjw8oG2j .taskText:not([font-size]){font-size:11px}#mermaid-svg-o9tSOmlrbjw8oG2j .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-o9tSOmlrbjw8oG2j .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-o9tSOmlrbjw8oG2j .task.clickable{cursor:pointer}#mermaid-svg-o9tSOmlrbjw8oG2j .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-o9tSOmlrbjw8oG2j .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-o9tSOmlrbjw8oG2j .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-o9tSOmlrbjw8oG2j .taskText0,#mermaid-svg-o9tSOmlrbjw8oG2j .taskText1,#mermaid-svg-o9tSOmlrbjw8oG2j .taskText2,#mermaid-svg-o9tSOmlrbjw8oG2j .taskText3{fill:#fff}#mermaid-svg-o9tSOmlrbjw8oG2j .task0,#mermaid-svg-o9tSOmlrbjw8oG2j .task1,#mermaid-svg-o9tSOmlrbjw8oG2j .task2,#mermaid-svg-o9tSOmlrbjw8oG2j .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-o9tSOmlrbjw8oG2j .taskTextOutside0,#mermaid-svg-o9tSOmlrbjw8oG2j .taskTextOutside2{fill:#000}#mermaid-svg-o9tSOmlrbjw8oG2j .taskTextOutside1,#mermaid-svg-o9tSOmlrbjw8oG2j .taskTextOutside3{fill:#000}#mermaid-svg-o9tSOmlrbjw8oG2j .active0,#mermaid-svg-o9tSOmlrbjw8oG2j .active1,#mermaid-svg-o9tSOmlrbjw8oG2j .active2,#mermaid-svg-o9tSOmlrbjw8oG2j .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-o9tSOmlrbjw8oG2j .activeText0,#mermaid-svg-o9tSOmlrbjw8oG2j .activeText1,#mermaid-svg-o9tSOmlrbjw8oG2j .activeText2,#mermaid-svg-o9tSOmlrbjw8oG2j .activeText3{fill:#000 !important}#mermaid-svg-o9tSOmlrbjw8oG2j .done0,#mermaid-svg-o9tSOmlrbjw8oG2j .done1,#mermaid-svg-o9tSOmlrbjw8oG2j .done2,#mermaid-svg-o9tSOmlrbjw8oG2j .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-o9tSOmlrbjw8oG2j .doneText0,#mermaid-svg-o9tSOmlrbjw8oG2j .doneText1,#mermaid-svg-o9tSOmlrbjw8oG2j .doneText2,#mermaid-svg-o9tSOmlrbjw8oG2j .doneText3{fill:#000 !important}#mermaid-svg-o9tSOmlrbjw8oG2j .crit0,#mermaid-svg-o9tSOmlrbjw8oG2j .crit1,#mermaid-svg-o9tSOmlrbjw8oG2j .crit2,#mermaid-svg-o9tSOmlrbjw8oG2j .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-o9tSOmlrbjw8oG2j .activeCrit0,#mermaid-svg-o9tSOmlrbjw8oG2j .activeCrit1,#mermaid-svg-o9tSOmlrbjw8oG2j .activeCrit2,#mermaid-svg-o9tSOmlrbjw8oG2j .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-o9tSOmlrbjw8oG2j .doneCrit0,#mermaid-svg-o9tSOmlrbjw8oG2j .doneCrit1,#mermaid-svg-o9tSOmlrbjw8oG2j .doneCrit2,#mermaid-svg-o9tSOmlrbjw8oG2j .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-o9tSOmlrbjw8oG2j .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-o9tSOmlrbjw8oG2j .milestoneText{font-style:italic}#mermaid-svg-o9tSOmlrbjw8oG2j .doneCritText0,#mermaid-svg-o9tSOmlrbjw8oG2j .doneCritText1,#mermaid-svg-o9tSOmlrbjw8oG2j .doneCritText2,#mermaid-svg-o9tSOmlrbjw8oG2j .doneCritText3{fill:#000 !important}#mermaid-svg-o9tSOmlrbjw8oG2j .activeCritText0,#mermaid-svg-o9tSOmlrbjw8oG2j .activeCritText1,#mermaid-svg-o9tSOmlrbjw8oG2j .activeCritText2,#mermaid-svg-o9tSOmlrbjw8oG2j .activeCritText3{fill:#000 !important}#mermaid-svg-o9tSOmlrbjw8oG2j .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-o9tSOmlrbjw8oG2j g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-o9tSOmlrbjw8oG2j g.classGroup text .title{font-weight:bolder}#mermaid-svg-o9tSOmlrbjw8oG2j g.clickable{cursor:pointer}#mermaid-svg-o9tSOmlrbjw8oG2j g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-o9tSOmlrbjw8oG2j g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-o9tSOmlrbjw8oG2j .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-o9tSOmlrbjw8oG2j .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-o9tSOmlrbjw8oG2j .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-o9tSOmlrbjw8oG2j .dashed-line{stroke-dasharray:3}#mermaid-svg-o9tSOmlrbjw8oG2j #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-o9tSOmlrbjw8oG2j #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-o9tSOmlrbjw8oG2j #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-o9tSOmlrbjw8oG2j #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-o9tSOmlrbjw8oG2j #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-o9tSOmlrbjw8oG2j #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-o9tSOmlrbjw8oG2j #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-o9tSOmlrbjw8oG2j #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-o9tSOmlrbjw8oG2j .commit-id,#mermaid-svg-o9tSOmlrbjw8oG2j .commit-msg,#mermaid-svg-o9tSOmlrbjw8oG2j .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-o9tSOmlrbjw8oG2j .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-o9tSOmlrbjw8oG2j .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-o9tSOmlrbjw8oG2j g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-o9tSOmlrbjw8oG2j g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-o9tSOmlrbjw8oG2j g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-o9tSOmlrbjw8oG2j g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-o9tSOmlrbjw8oG2j g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-o9tSOmlrbjw8oG2j g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-o9tSOmlrbjw8oG2j .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-o9tSOmlrbjw8oG2j .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-o9tSOmlrbjw8oG2j .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-o9tSOmlrbjw8oG2j .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-o9tSOmlrbjw8oG2j .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-o9tSOmlrbjw8oG2j .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-o9tSOmlrbjw8oG2j .edgeLabel text{fill:#333}#mermaid-svg-o9tSOmlrbjw8oG2j .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-o9tSOmlrbjw8oG2j .node circle.state-start{fill:black;stroke:black}#mermaid-svg-o9tSOmlrbjw8oG2j .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-o9tSOmlrbjw8oG2j #statediagram-barbEnd{fill:#9370db}#mermaid-svg-o9tSOmlrbjw8oG2j .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-o9tSOmlrbjw8oG2j .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-o9tSOmlrbjw8oG2j .statediagram-state .divider{stroke:#9370db}#mermaid-svg-o9tSOmlrbjw8oG2j .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-o9tSOmlrbjw8oG2j .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-o9tSOmlrbjw8oG2j .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-o9tSOmlrbjw8oG2j .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-o9tSOmlrbjw8oG2j .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-o9tSOmlrbjw8oG2j .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-o9tSOmlrbjw8oG2j .note-edge{stroke-dasharray:5}#mermaid-svg-o9tSOmlrbjw8oG2j .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-o9tSOmlrbjw8oG2j .error-icon{fill:#522}#mermaid-svg-o9tSOmlrbjw8oG2j .error-text{fill:#522;stroke:#522}#mermaid-svg-o9tSOmlrbjw8oG2j .edge-thickness-normal{stroke-width:2px}#mermaid-svg-o9tSOmlrbjw8oG2j .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-o9tSOmlrbjw8oG2j .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-o9tSOmlrbjw8oG2j .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-o9tSOmlrbjw8oG2j .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-o9tSOmlrbjw8oG2j .marker{fill:#333}#mermaid-svg-o9tSOmlrbjw8oG2j .marker.cross{stroke:#333}:root { --mermaid-font-family: "trebuchet ms", verdana, arial;} #mermaid-svg-o9tSOmlrbjw8oG2j {color: rgba(0, 0, 0, 0.75);font: ;}
事务 transaction
目的:保证数据的完整性
一个完整的操作序列
四大特性:ACID
并发:脏读、不可重复读、幻读
隔离级别:读已提交 (Oracle 默认)
2 事务
2.1 四大特性(ACID)
事务特性
|
描述
|
原子性(Atomicity)
|
原子工作单元,不可分割
|
一致性(Consistency)
|
事务结束前后,数据 整体不变
|
隔离性(Isolation)
|
多个事务独立运行,互不干扰
|
持久性(Durability)
|
事务一旦提交,对数据的改变 永久有效
|
举例:张三 向 李四 银行转账 100 元
-- 步骤1:张三 的账户金额 - 100 元
update account set money = money - 100 where name = '张三';-- 步骤2:李四 的账户金额 + 100 元
update account set money = money + 100 where name = '李四';-- 解释说明:
原子性:上述 2 条 sql 语句的执行,要么全部成功,要么全部失败
一致性:账户总金额不变
隔离性:张三、李四 看不到彼此的账户信息
持久性:事务提交后,账户金额被永久保存
2.2 并发
事务
|
读写
|
脏读(Dirty Read)
|
1. 脏读:读到的是 修改 但 未提交 的数据
|
不可重复读(Nonrepeatable Read)
|
2. 不可重复读:同样的条件,前后读取的结果不一致,偏向 “update” 操作
|
幻读(Phantom Read)
|
3. 幻读:同样的条件,前后读取的结果不一致,偏向 “insert” 和 “delete”
|
-- 基础数据准备
create table scott.emp_bak as select * from scott.emp;
1. 脏读:读到的是 修改 但 未提交 的数据
/*事务 A 读取被事务 B 修改但 "未提交" 的数据('Test')(1) 假如 B 回退,则事务 A 读取的是 "无效" 的数据("脏数据")(2) 这跟 "不可重复读" 类似,但是事务 B 不需要执行提交。
*/
事务A 事务B
----------------------------------------------------update scott.emp_bak t2set t2.job = 'TEST'where t2.empno = 7369;
----------------------------------------------------
select t1.job -- Testfrom scott.emp_bak t1where t1.empno = 7369;
----------------------------------------------------rollback;
2. 不可重复读:同样的条件,前后读取的结果不一致,偏向 “update” 操作
/*同样的条件, 你读取过的数据, 再次读取出来发现值不一样了(1) 不可重复读的重点是 "修改"
*/
事务A 事务B
----------------------------------------------------
select t1.jobfrom scott.emp_bak t1where t1.empno = 7369;
---------------------------------------------------- update scott.emp_bak t2set t2.job = 'Test2'where t2.empno = 7369;commit;
----------------------------------------------------
select t1.job -- Test2from scott.emp_bak t1where t1.empno = 7369;
3. 幻读:同样的条件,前后读取的结果不一致,偏向 “insert” 和 “delete”
/*同样的条件, 第 1 次和第 2 次读出来的记录数不一样(1) 幻读的重点在于 "新增" 或者 "删除" (数据条数变化)。
*/
事务A 事务B
----------------------------------------------------
select t1.jobfrom scott.emp_bak t1where t1.empno = 7369;
---------------------------------------------------- insert into scott.emp_bak(empno, job)values(7369, 'Test2');commit;
----------------------------------------------------
select t1.job -- 多了 Test2from scott.emp_bak t1where t1.empno = 7369;
2.3 隔离级别
隔离级别由低到高
|
脏读
|
不可重复读
|
幻读
|
数据库默认
|
读未提交 (Read Uncommitted)
|
√
|
√
|
√
|
|
读已提交 (Read Commited)
|
×
|
√
|
√
|
Oracle
|
重复读取(Repeatable Read)
|
×
|
×
|
√
|
Mysql
|
序列化 (Serializable)
|
×
|
×
|
×
|
|
说明:
- 引入事务隔离级别的目的:解决 事务的并发问题
- 隔离级别并非越高越好。越高意味着需要更多的 锁 来保证事务的正确性,效率就越低
- 一般设置为:read-comment
事务隔离级别 查询 和 设置
-- 1. 首先创建一个事务(若有,可忽略)
declaretrans_id varchar2(100);
begintrans_id := dbms_transaction.local_transaction_id(true);
end;-- 2. 查询 事务隔离级别
select (case bitand(t.flag, power(2, 28))when 0 then'READ COMMITTED'else'SERIALIZABLE' end) 事务隔离级别,s.username,s.sid,s.serial#,s.*from v$transaction t,v$session swhere s.taddr = t.addr;-- 3. 设置 事务隔离级别 (Oracle 仅支持以下两种)
set transaction isolation level [read committed | serializable];
2.4 开始和结束
1. 事务的开始(1) 一条 sql、一组 sql 或 一个程序块2. 事务的结束(1) '显示'结束:commit、rollback(2) '隐式'结束:DDL、DCL(隐含了 commit)、客户端主动断开数据库的连接(disconnect)、数据库关闭(宕机)
思考题:
下列情况中,会导致 Oracle 事务结束的有()(多选)A、pl/sql 块结束B、发出 savepoint 语句C、用户强行退出 sql*plusD、发出 select 语句E、发出 commit 或 rollback 语句
答案:C、E
解析:(1) 事务结束可以采用 commit 或 rollback(2) 若强行退出 sql*plus,事务将自动回滚
Oracle 事务详解(transaction)相关推荐
- java JDBC事务和JTA事务详解
什么是事务? 事务其实就是一套数据库操作集合,说到事务就不得不说它的四大特性(A C I D):原子性,一致性,隔离性,持久性.事务的原子性表示事务要么被全部执行,要么被全部不执行.如果事务下的子事务 ...
- Oracle 错误代码详解
Oracle 错误代码详解及解决方式–ORA ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常. ORA-00017: 请求会话以设置跟踪事 ...
- oracle分区表编程,Oracle分区表详解
当前位置:我的异常网» 编程 » Oracle分区表详解 Oracle分区表详解 www.myexceptions.net 网友分享于:2013-10-28 浏览:25次 Oracle分区表详解 ...
- oracle有哪两种内存结构,Oracle体系结构详解(物理构造,内存结构和逻辑结构)...
当前位置:我的异常网» 数据库 » Oracle体系结构详解(物理构造,内存结构和逻辑结构 Oracle体系结构详解(物理构造,内存结构和逻辑结构) www.myexceptions.net 网友分 ...
- oracle里面asm的作用,Oracle ASM 详解
Oracle ASM 详解 ASM:Automatic Storage Management, 是Oracle 主推的一种面向Oracle的存储解决方案, ASM 和 RDBMS 非常相似,ASM 也 ...
- SpringBoot事务详解
文章目录 一.简介 1.介绍 2.事务特点 3.事务实现方式 3.1 MySql事务实现方式 3.2 SpringBoot实现机制 二.@Transactional详解 1.@Transactiona ...
- mysql dba系统学习-数据库事务详解
mysql dba系统学习-数据库事务详解 上个星期去面试数据库管理员的工作,笔试通过之后就是直接的面试,他问了我一个问题,叫我介绍哈数据库的事务的看法和理解,但是不知所错的没有章法的乱答一气,唉唉, ...
- oracle scn 重置,学习笔记:Oracle SCN详解 SCN与Oracle数据库恢复的关系
天萃荷净 分享一篇关于Oracle SCN的详解,介绍SCN与Oracle数据库恢复的关系和SCN在数据库中的作用 一.为什么需要System checkpoint SCN号与Datafile Che ...
- Spring源码(八):Spring事务详解
Spring事务详解 一.事务执行流程 二.Spring事务切面 三.事务切面的Pointcut和Advice 四.注解事务的源码分析 五.Sping事务的传播属性 六.Sping事务的异常校验 七. ...
最新文章
- python使用sklearn中的make_classification函数生成分类模型(classification)需要的仿真数据、使用pandas查看生成数据的特征数据、目标数据
- IDEA和Eclipse工程结构的区别
- Javascript模块化编程
- Java黑皮书课后题第6章:6.37(格式化整数)编写一个测试程序,提示用户输入一个数字以及宽度,显示通过调用format方法返回的字符串
- 面试官问我:如何解决ABA问题?我给出接近满分的回答
- python 计算过程图片_[Python图像处理]九.图像形态学相关运算
- C#输入框InputBox问题
- UEditor实战分享(二)定制
- caffe命令行解析
- HDU2586 How far away ?(LCA模板题)
- 衣带渐宽终不悔为伊消得人憔悴,土蜂蜜科技终成正果
- 阿里云对象存储OSS中上传的资源在生成URL链接时直接在浏览器中打开而不是下载的问题解决方法
- Windows 10 S怎么样?Windows 10 S六大新特性介绍
- 自定义可自由移动的浮窗
- linux用户motd,linux修改motd,提供个性化login信息
- php java 私钥 转换格式,php公钥私钥 3 ---非标准格式转换为标准格式
- windows系统C++获取当前电脑电池信息
- 找不到 blog.csdn.net 的服务器 DNS 地址
- 联想服务器bios查看网卡信息,如何通过BIOS检查确认硬盘信息可被正常识别
- 用计算机知道函数值求度数,怎么计算出余弦的度数
热门文章
- 逻辑回归(logistics regression)与 softmax
- 为office 365用户上传头像
- JAVA调用 keras,keras vgg19 模型使用
- 微信小程序(小程序定位获取地址信息篇)
- python中的zipfile用法
- 如何和软件项目客户打交道
- uniapp绘制小程序海报如何追加图表
- LaTex插入图片的几种常用的详细方法
- 软件设计师考试经验分享
- Linux系统的shell是什么