事务控制语句

使用事务控制语句


事务用于确保数据库的一致性,它有一组相关的DML语句组成。该DML语句所执行的操作要么
全部成功,要么全部取消。


1.事务和锁


当执行事务操作时,ORACLE会被作用表上加锁,以防止其他的用户改变表的结构;
同时会在被作用行上加行锁,以防止其他的事务在相应的行上执行DML操作。


如:假设会话A更新emp表行的数据,那么会在表emp上加锁;此时其他的回话修改表结构,
则会显示错误信息。


提交事务


使用commit语句可以提交事务。当执行了commit语句之后,会确认事务变化,结束事务,删除保存点,释放锁,
当使用commit语句结束事务之后,其他的回话可以查询到事务变化后的新数据。


回退事务


保存点(savepoint)的概念和作用。保存点是事务中的一点,它用于取消部分事务。
当结束事务时,会自动删除该事务所定义的所有保存点。


设置保存点


设置保存点是使用SQL命令SAVEPOINT来完成的。也可以使用DBMS_TRANSACTION的过程
SAVEPOINT来保存设置点。如下所示


savepoint a;或 exec dbms_transaction.savepoint('a')


2.取消部分事务


为了取消部分事务,用户可以回退到保存点,使用ROLLBACK命令也可以使用
DBMS_TRANSACTION的过程ROLLBACK_SAVEPOINT;如下所示


rollback a;或者exec dbms——transaction.rollback.savepoint('a');


取消全部事务


使用rollback命令可以取消全部的事务


exec dbms_transaction.rollback;
当使用rollback取消全部事务时,会取消所有的事务变化,结束事务,删除所有保存点,释放锁。


只读事务:指只允许执行查询操作,而不允许任何的DML操作事务。


set transaction read only;


注意设置只读事务时,该语句必须是事务开始的第一条语句。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值