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