事务:可以看做是由对数据可的若干操作组成的一个单元,浙西操作要么都完成,要么都取消,从而保证数据满足一致性的要求。
事务的组成:
- 一条或者多条DML
- 一条DDL
- 一条DCL
DML语句需要使用commit提交事务或使用rollback回滚事务。
DDL和DCL是自动提交事务的。
为什么使用事务?
使用事务的原因:保证数据的安全有效。
当执行事务操作(DML语句)时,Oracle会被作用表上加表锁,以防止其他用户该表表结构;同时会被作用行还是哪个加行锁,以防止其他事务在相应行上执行DML操作。
事务的控制命令
提交事务commit
- 通过commit语句可以提交事务,当执行了commit语句后,会确认事务的变化、结束事务、删除保存点和释放锁。
- 当使用commit语句结束事务之后,其他会话将可以查看事务变化后的新数据。
回滚事务rollback
- rollback只能对未提交的数据撤销,已经commit的数据时无法撤销的,因为commit之后已经持久化到数据库中。
保存点savepoint
- 保存点是事务中的一点,用于取消部分事务,当事务结束时,会自耦东的删除该事务所定义的所有保存点。当执行rollback时,通过制定的保存点可以回退到指定的点。
设置保存点:savepoint a; 回滚部分事务:rollback to a; 回滚全部事务:rollback; |