SQLite進階-18.事務

SQLite事務

事務(Transaction) 是一個對數據庫執行工作單元。事務是以邏輯順序完成的工作單元或序列,可以是由用戶手動操作完成,也可以是由某種數據庫程序自動完成。

事務是指一個或者多個改變數據庫的擴展。例如:如果你正在創建一個記錄或者更新一個記錄或者從表中刪除一個記錄,那麼你正在該表上執行事務。重要的是要控制事務以確保數據的完整性和處理數據庫錯誤。
實際上,你可以把許多的SQLite查詢聯合成一組,把所有這些放在一起作爲事務的一部分進行執行。

事務的屬性

事務(Transaction)具有以下四個標準屬性,通常根據首字母縮寫爲ACID:

  • 原子性(Atomicity): 確保工作單位內的所有操作都成功完成,否則,事務會在出現故障時終止,之前的操作也會回滾到以前的狀態。
  • 一致性(Consistency): 確保數據庫在成功提交的事務上正確的改變狀態。
  • 隔離性(Isolation): 使事務操作相互獨立和透明。
  • 持久性(Durability): 確保已提交事務的結果或效果在系統發生故障的情況下仍然存在。

事務控制

使用下面的命令來控制事務:

  • BEGIN TRANSACTION: 開始事務處理。
  • COMMIT: 保持更改,或者可以使用END TRANSACTION命令。
  • ROLLBACK: 回滾所做的更改。

事務控制命令只與DML命令INSERT、UPDATE、DELETE一起使用。他們不能再創建表或刪除表時使用,因爲這些操作在數據庫中是自動提交的。

BEGIN TRANSACTION命令

事務(Transaction)可以使用BEGIN TRANSACTION命令或簡單的BEGIN命令來啓動。此類事務通常會持續執行下去,直到遇到下一個COMMIT或ROLLBACK命令。不過在數據庫關閉或發生錯誤時,事務處理也會回滾。以下是啓動一個事務的簡單語法:

BEGIN;

or

BEGIN TRANSACTION;

COMMIT命令

COMMIT命令是用於把事務調用的更改保持到數據庫中的事務命令。
COMMIT命令把自上次COMMIT或ROLLBACK命令以來的所有事務保存到數據庫。
COMMIT命令的語法如下:

COMMIT;

or

END TRANSACTION;

ROLLBACK命令

ROLLBACK命令是用於撤銷尚未保存到數據庫的事務的事務命令。
ROLLBACK命令只能用於撤銷自上次發出COMMIT或ROLLBACK命令以來的事務。
ROLLBACK命令的語法如下:

ROLLBACK;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章