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