一、什么是事务
事务用于保证数据的一致性,它由一组相关的dml语句组成,该组的dml语句要么全部成功,要们全部失败。
如:网上转帐就是典型的要用事务来处理,用以保证数据的一致性。
二、事务和锁
当执行事务操作时,Oracle会在被作用的表上加锁,防止其他用户改表。
三、提交事务
在执行使用commit语句可以提交事务,当执行了commit语句后,会确认事务的变化,结束事务,删除保存点,释放锁。当使用commit语句结束事务之后,其他会话将可以查看到事务变化后的新数据。
四、回退事务
在介绍回退事务前,我们先介绍一下保存点(savepoint)的概念和作用,保存点是事务中的一点,用于取消部分事务,当结束事务时,会自动的删除该事务所定义的所有保存点。当执行rollback时,通过制定保存点可以回退到指定的点。
1、设置保存点
sql> savepoint a;
2、回滚部分事务
sql>rollback to a;
3、回滚全部事务
sql>rollback;
五、只读事务
只读事务是指只允许执行查询的操作,而不允许执行任何其他dml操作的事务,使用只读事务可以确保用户只能取得某时间点的数据。
设置只读事务:
sql>set transaction read only;