Oracle--事务

                                                 控制事务


简介:事务用于确保数据的一致性,它由一组相关的DML语句组成,该组DML语句所执行的操作要么全部确认,要么全部取消。
数据库事物主要由INSERT、UPDATE、DELETE和SELECT...FOR UPDATE语句组成。当应用程序中执行第一条SQL语句时,会开始事务;
当执行COMMIT或ROLLBACK语句时会结束事务。
1.事务和锁
当执行事务操作(DML语句)时,Oracle会在被作用表上加表锁,以防止其他用户改变表结构;
同时会在被作用行上加行锁,以防止其他事务在相应行上执行DML操作。
在Oracle数据库中,为了确保数据库数据的读一致性,不允许其他用户读取脏数据(未提交事务)
2.提交事务
使用COMMIT语句可以提交事务。当确认了COMMIT语句之后,会确认事务变化、结束事务、删除保存点、释放锁。
当使用COMMIT语句结束事务之后,其他会话将可以看到事务变化后的新数据。
·当执行DDL语句时会自动提交事务,例如CREATE TABLE,ALTER TABLE,DROP TABLE等语句。
·当执行DCL语句(GRANT,REVOKE)时会自动提交事务
·当退出SQL*Plus时会自动提交事务
3.回退事务
在介绍回退事务之前,先介绍一下保存点(savepoint)的概念和作用。保存点是事务回退点,它用于取消部分事务。
当结束事务时,会自动删除该事务所定义的所有保存点。当执行ROLLBACK命令时,通过指定保存点可以取消部分事务。
设置保存点:设置保存点是使用SQL命令SAVEPOINT来完成的。 如:savepoint a;
取消部分事务:为了取消部分事务,可以回退到保存点,回退到保存点可以使用ROLLBACK命令。如:rollback to a;
取消全部事务:使用ROLLBACK命令可以取消全部事务。如:rollback;
当使用ROLLBACK取消事务时,会取消所有事务变化、结束事务、删除所有保存点并释放锁。
当出现系统灾难或应用程序地址异常时,会自动回退其事务变化。
4.只读事务
只读事务是指只允许执行查询操作,而不允许执行任何DML操作的事务,当使用只读事务时,可以确保用户取得特定时间点的数据。
注意:当设置只读事务时,该语句必须是事务开始的第一条语句。 如:SET TRANSACTION READ ONLY;
5.顺序事务
只读事务可以使得用户取得特定时间点的数据信息,但当设置了只读事务时,会话将不能执行INSERT/UPDATE/DELETE等DML操作。
为了使得用户可以取得特定时间点的数据,并且允许执行DML操作,可以使用顺序事务。
注意:当设置顺序事务时,该语句必须是事务开始的第一条语句。
如:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值