Oracle中事务

事务,是不可再分的最小工作单元,从宏观角度表示一个完整不可分割的业务,就是批量的DML语句必须同时成功或者同时失败,只要是DML语句开始执行就表示开启了一个事务,只要commit语句执行,标志着事务的结束。在同一事务中,所有的DML语句同时执行成功才会使用commit提交,只要是其中一个DML语句执行失败就要rollback回滚。

针对于数据库,事务保证批量的sql要么全成功,要么全失败,事务特征如下:

1、原子性:整个事务中所有操作,必须作为一个单元全部完成(或全部取消)。

2、一致性:在事务开始之前与结束之后,数据库都保持一致状态。

3、隔离性:一个事务不会影响其他事务运行。

4、持久性:在事务完成以后,该事务对数据库所做的更改将持久地保存在数据库之中,并不会被回滚。

存在概念:

事务(transaction)

一批操作(一组DML)

开启事务(start transaction)

回滚事务(rollback)

提交事务(commit)

禁用或启用事务的自动提交模式(set autocommit)

其中隔离级别:

                1、读未提交:read uncommitted

                2、读已提交:read committed

                3、可重复读:repeatable read

                4、序列化:serializable

Oracle只支持read uncommitted和serializable

设置事务的隔离级别:set transaction isolation level serializable;

关于回滚需要注意:只能回滚insert、delete、update语句,不能回滚select,不能回滚create、drop、alter。

delete和truncate都可以删除表中的数据,delete是DML语句,删除数据后还可以回滚,truncate是DDL语句,删除数据之后不可以回滚,truncate语句是将表截断。

如:

delete from t_u;

truncate table t_u;

              

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值