文章目录

  • 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) × × ×

说明:

  1. 引入事务隔离级别的目的:解决 事务的并发问题
  2. 隔离级别并非越高越好。越高意味着需要更多的 锁 来保证事务的正确性,效率就越低
  3. 一般设置为: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)相关推荐

  1. java JDBC事务和JTA事务详解

    什么是事务? 事务其实就是一套数据库操作集合,说到事务就不得不说它的四大特性(A C I D):原子性,一致性,隔离性,持久性.事务的原子性表示事务要么被全部执行,要么被全部不执行.如果事务下的子事务 ...

  2. Oracle 错误代码详解

    Oracle 错误代码详解及解决方式–ORA ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常. ORA-00017: 请求会话以设置跟踪事 ...

  3. oracle分区表编程,Oracle分区表详解

    当前位置:我的异常网» 编程 » Oracle分区表详解 Oracle分区表详解 www.myexceptions.net  网友分享于:2013-10-28  浏览:25次 Oracle分区表详解 ...

  4. oracle有哪两种内存结构,Oracle体系结构详解(物理构造,内存结构和逻辑结构)...

    当前位置:我的异常网» 数据库 » Oracle体系结构详解(物理构造,内存结构和逻辑结构 Oracle体系结构详解(物理构造,内存结构和逻辑结构) www.myexceptions.net  网友分 ...

  5. oracle里面asm的作用,Oracle ASM 详解

    Oracle ASM 详解 ASM:Automatic Storage Management, 是Oracle 主推的一种面向Oracle的存储解决方案, ASM 和 RDBMS 非常相似,ASM 也 ...

  6. SpringBoot事务详解

    文章目录 一.简介 1.介绍 2.事务特点 3.事务实现方式 3.1 MySql事务实现方式 3.2 SpringBoot实现机制 二.@Transactional详解 1.@Transactiona ...

  7. mysql dba系统学习-数据库事务详解

    mysql dba系统学习-数据库事务详解 上个星期去面试数据库管理员的工作,笔试通过之后就是直接的面试,他问了我一个问题,叫我介绍哈数据库的事务的看法和理解,但是不知所错的没有章法的乱答一气,唉唉, ...

  8. oracle scn 重置,学习笔记:Oracle SCN详解 SCN与Oracle数据库恢复的关系

    天萃荷净 分享一篇关于Oracle SCN的详解,介绍SCN与Oracle数据库恢复的关系和SCN在数据库中的作用 一.为什么需要System checkpoint SCN号与Datafile Che ...

  9. Spring源码(八):Spring事务详解

    Spring事务详解 一.事务执行流程 二.Spring事务切面 三.事务切面的Pointcut和Advice 四.注解事务的源码分析 五.Sping事务的传播属性 六.Sping事务的异常校验 七. ...

最新文章

  1. python使用sklearn中的make_classification函数生成分类模型(classification)需要的仿真数据、使用pandas查看生成数据的特征数据、目标数据
  2. IDEA和Eclipse工程结构的区别
  3. Javascript模块化编程
  4. Java黑皮书课后题第6章:6.37(格式化整数)编写一个测试程序,提示用户输入一个数字以及宽度,显示通过调用format方法返回的字符串
  5. 面试官问我:如何解决ABA问题?我给出接近满分的回答
  6. python 计算过程图片_[Python图像处理]九.图像形态学相关运算
  7. C#输入框InputBox问题
  8. UEditor实战分享(二)定制
  9. caffe命令行解析
  10. HDU2586 How far away ?(LCA模板题)
  11. 衣带渐宽终不悔为伊消得人憔悴,土蜂蜜科技终成正果
  12. 阿里云对象存储OSS中上传的资源在生成URL链接时直接在浏览器中打开而不是下载的问题解决方法
  13. Windows 10 S怎么样?Windows 10 S六大新特性介绍
  14. 自定义可自由移动的浮窗
  15. linux用户motd,linux修改motd,提供个性化login信息
  16. php java 私钥 转换格式,php公钥私钥 3 ---非标准格式转换为标准格式
  17. windows系统C++获取当前电脑电池信息
  18. 找不到 blog.csdn.net 的服务器 DNS 地址
  19. 联想服务器bios查看网卡信息,如何通过BIOS检查确认硬盘信息可被正常识别
  20. 用计算机知道函数值求度数,怎么计算出余弦的度数

热门文章

  1. 逻辑回归(logistics regression)与 softmax
  2. 为office 365用户上传头像
  3. JAVA调用 keras,keras vgg19 模型使用
  4. 微信小程序(小程序定位获取地址信息篇)
  5. python中的zipfile用法
  6. 如何和软件项目客户打交道
  7. uniapp绘制小程序海报如何追加图表
  8. LaTex插入图片的几种常用的详细方法
  9. 软件设计师考试经验分享
  10. Linux系统的shell是什么