事务

Oracle事务

定义:

​ 事务是指作为单个逻辑工作单元执行的一组相关操作。这些操作要求全部完成或者全部不完成。使用事务是为 了保证数据的安全有效。

事务的特点(ACID)

  • **原子性(Atomic):**事务中所有数据的修改,要么 全部执行,要么全部不执行。
  • **一致性(Consistence):**事务完成时,要使所有所 有的数据都保持一致的状态,换言之:通过事务进行 的所有数据修改,必须在所有相关的表中得到反映。
  • **隔离性(Isolation):**事务应该在另一个事务对数据 的修改前或者修改后进行访问。
  • **持久性(Durability):**保证事务对数据库的修改是 持久有效的,即使发生系统故障,也不应该丢失。

事务的隔离级别

隔离级别脏读不可重复读幻读
Read uncommitted(读未提交)
Read committed(读已提交)
Repeatable read(可重复读)
Serializable(窜行读)

Oracle 默认的隔离级别是 read committed。

**丢失更新:**两个事务同时存储, 一个存储 100 , 一个 存储 200,最终可能至存储了 200 或者 100,那另一个的 更新就没成功,即结果不为预想的 300

**脏读:**事务 T1 更新了一行数据,还没有提交所做的修 改,T2 读取更新后的数据,T1回滚,T2 读取的数据无 效,这种数据称为脏读数据。

**不可重复读:**事务 T1 读取一行数据,T2 修改了 T1 刚刚 读取的记录,T1 再次查询,发现与第一次读取的记录不 相同,称为不可重复读。

**幻读:**事务 T1 读取一条带 WHERE 条件的语句,返回结 果集,T2 插入一条新纪录,恰好也是 T1 的 WHERE 条 件,T1 再次查询,结果集中又看到 T2 的记录,新纪录 就叫做幻读。

. 事务的结束

  1. 成功

    正常执行完成的 DDL 语句:create、alter、drop

    正常执行完 DCL 语句 GRANT、REVOKE

    正常退出的 SQLPlus 或者 SQL Developer 等客户端 如果人工要使用隐式事务,SET AUTOCOMMIT ON (只针对一个连接) 手动提交 :使用 commit

  2. 失败

    rollback ,手动回滚

    非法退出 意外的断电

rollback 只能对未提交的数据撤销,已经 Commit 的数据 是无法撤销的,因为 commit 之后已经持久化到数据库 中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值