1. 程式人生 > >管理資料庫事務

管理資料庫事務

紫色代表一級目錄
粉紅代表二級目錄
藍色代表三級目錄
紅色代表關鍵字
橙色代表說明

管理資料庫事務
  事務:事務是對資料庫執行的一個操作單位。
     它是以邏輯順序完成的工作單元或工作序列。
     事務是由資料操作語言(DML)完成的。
     事務是對資料庫所做的一個或多個修改。
     一個事務可以是一個或多個DML語句。
     在管理事務時,指定的事務(DML語句組)都必須作為一個整體來完成。
  控制事務
    事務控制是對關係資料庫管理系統(RDBMS)裡可能發生的各種事務的管理能力。
    當一個事務被執行並且成功完成時,雖然從輸出結果來看目標表已被修改了,但實際上目標表並不是立即被修改。
    當事務成功完成時,利用事務控制命令最終認可這個事務,可以把事務所做的修改儲存到資料庫,也可以撤銷事務所做的修改。
    COMMIT、ROLLBACK、SAVEPOINT

(只能與INSERT、UPDATE、DELETE連用)
    在這裡插入圖片描述
    圖中展示了修改操作如何應用到關係型資料庫。
    COMMIT命令
      COMMIT命令用於把事務所做的修改儲存到資料庫,它把上一個COMMIT或ROLLBACK命令之後的全部事務都儲存到資料庫。
      語法:
      在這裡插入圖片描述
    ROLLBACK命令
      ROLLBACK命令用於撤銷還沒有被儲存到資料庫的命令,它只能用於撤銷上一個COMMIT或ROLLBACK命令之後的事務。
      語法:
      在這裡插入圖片描述
    SAVEPOINT命令(儲存點的名稱必須唯一)
      儲存點是事務過程中的一個邏輯點,我們可以把事務回退到這個點,而不必回退整個事務。
      語法:

      在這裡插入圖片描述
      在SQL Server中,語法為:SAVE TRANSACTION savepoint_name。
    ROLLBACK TO SAVEPOINT命令
       語法:
       在這裡插入圖片描述
    RELEASE SAVEPOINT命令
      用於刪除建立的儲存點。
      語法:
      在這裡插入圖片描述
      SQL Server不支援RELEASE SAVEPOINT命令;在事務完成以後,所有的儲存點會被自動刪除。
    SET TRANSACTION命令
      這個命令用於初始化資料庫事務,可以指定事務的特性。
      例:
      在這裡插入圖片描述

      READ WRITE用於對資料庫進行查詢和操作資料的事務。
      READ ONLY用於只進行查詢資料的事務。

  watch out:如果一直沒有出現COMMIT或ROLLBACK命令,臨時儲存區域裡的回退資訊就會不斷增長,直到沒有剩餘空間,導致資料庫停止全部程序,直到空間被釋放。