1、事务:是由对数据库的若干操作组成的一个单元,这些操作要么都完成,要么都取消,从而保证数据满足一致性的要求
2、事务的组成
(1)、一条或多条DML
(2)、一条DDL
(3)、一条DCL
注:<1>、DML语句需要使用commit提交事务或使用rollback回滚事务
<2>、DDL和DCL是自动提交事务的
3、事务的作用:保证数据的安全有效。当执行事务操作(DML语句)时,Oracle会被作用表上加表锁,以防止其他用户改变表结构;同时会在被作用行上加行锁,以防止其他事务在相应行上执行DML操作
4、 commit、rollback、savepoint控制事务的方法
(1)、提交事务(commit):通过commit语句可以提交事务,当执行了commit语句后,会确认事务的变化、结束事务、删除保存点,释放锁。当使用commit语句结束事务之后,其他回话将可以查看到事务变化后的新数据
(2)、回滚事务(rollback):rollback只能对未提交的数据撤销,已经commit的数据是无法撤销的,因为commit之后已经持久化到数据库中
(3)、保存点(savepoint):是事务中的一点,用于取消部分事务,当结束事务时,会自动删除该事务所定义的所有保存点。当执行rollback时,通过指定保存点可以回退到指定的点
<1>、设置保存点:savepoint a;
<2>、回滚部分事务:rollback to a;
<3>、回滚全部事务:rollback;
例:update emp_bak set sal = 555 where empno = 7499;
savepoint a;
update emp_bak set sal = 666 where empno = 7499;
rollback to a;
rollback to b;
rollback;