Oracle Database/SQL
Transaction事务
编辑- 开始事务:连接到数据库,执行DML、DCL、DDL语句
- 结束事务:
- 执行DDL(例如CREATE TABLE),DCL(例如GRANT),系统自动执行COMMIT语句
- 执行COMMIT/ROLLBACK语句
- 关闭数据库连接会自动执行COMMIT语句
- 进程意外终止,事务自动rollback
- 保存点(savepoint): 可以在事务的任何地方设置保存点,以便ROLLBACK
- RELEASE SAVEPOINT --释放存储点
- 死锁:当两个事务相互等待对方释放资源时,就会形成死锁
事务COMMIT时会生成一个唯一的系统变化号(SCN)保存到事务表
设定事物的互斥类型:
- SET TRANSACTION READ ONLY 事务中不能有任何修改数据库中数据的操作语句,这包括 insert、update、delete、create语句
- SET TRANSACTION READ WRITE 默认设置,该选项表示在事务中可以有访问语句、修改语句
- SET TRANSACTION ISOLATION LEVEL READ COMMITTED 支持幻读、支持不可重复读
- SET TRANSACTION ISOLATION LEVEL SERIALIZABLE