Oracle查询笔记--数据库事务

数据库事务

事务(Transaction)

事务的主要任务

确保数据的一致性,使程序员可以更加灵活的执行对数据库的操作,避免数据库中数据错误
事务是由一组DML语句组成,完成一个相对完整的功能。
例如,当一个银行客户从一个活期卡账户转账一定的数额形成一个定期账户,这对于数据库而言就是一个事务。该事务由三部分单独的操作组成,减少活期账户数额,创建定期账户和记录交易信息。作为数据库,必须保证组成事务的三部分操作必须全部完成,才能维护数据的一致性。当因为某种原因,导致其中的一个操作失败,那么其他的操作也会被撤销

事务的4大特性

(1) 原子性(Atomicity)

事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行。这种特性称为原子性。不可再分
例如银行转账事务分为2个步骤(1)A账户减钱(2)B账户加钱。不可能A账户减了钱而B账户没有加钱。2个步骤必须同时完成或者都不完成。

(2)一致性(Consistency)

事务的一致性指的是在一个事务执行之前和执行之后数据库都必须处于一致性状态。这种特性称为事务的一致性。
例如 A账户减了10块钱,那么B账户就要加10块钱 既A+B=10,A改变了B也随之改变。

(3)隔离性(亦称独立性Isolation)

隔离性指并发的事务是相互隔离的。即一个事务内部的操作及正在操作的数据必须封锁起来,不被其它企图进行修改的事务看到。假如并发交叉执行的事务没有任何控制,操纵相同的共享对象的多个并发事务的执行可能引起异常情况。

(4)持久性(Durability)

一旦一个事务提交,保证它对数据库中数据的改变应该是永久性的。

注意
当执行第一个DML SQL语句时或一个事务结束之后下一个SQL语句开始时,事务开始,当碰到一个COMMIT(提交)语句或ROLLBACK(回滚)语句时,事务结束。
客户端工具意外退出或发生系统故障,此时整个事务会被自动回滚。该回滚防止不必要的数据改变错误发生,保证Oracle数据的完整性
在一个用户执行DML语句(未结束事务)影响数据库中相关的行时,受影响的行被锁定,其他用户不能改变受影响的行中的数据,直到事务结束时为止

语句

  • COMMIT:提交当前事务,使之前做的改变永久作用于数据库
  • ROLLBACK:回滚当前事务,丢弃所有未提交的数据改变
  • SAVEPOINT name:在当前事务中标记保存点
  • ROLLBACK TO name:回滚当前事务到指定的保存点 name,从而丢弃保存点后对数据库的修改
    注意:回滚到保存点,但是保存点前的语句仍然需要手动COMMIT
    –savepoint aa; 在当前事务中标记保存点aa
    –rollback to aa; 回滚当前事务到指定的保存点 aa,从而丢弃保存点后对数据库的修改
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值