本文介紹了PolarDB-X支持的TCL語句及其用法。

數據庫事務(Database Transaction)是指作為單個邏輯工作單元執行的一系列操作。事務處理可以用來維護數據庫的完整性,保證成批的SQL操作全部執行或全部不執行。

默認情況下,PolarDB-X以開啟自動提交(autocommit)的模式運行,也就是每條SQL語句單獨構成一個事務(出于性能考慮,跨分片的DML語句默認未開啟分布式事務,僅對更新GSI、更新廣播表、更新拆分鍵的DML語句默認開啟分布式事務)。您可以通過執行SET AUTOCOMMIT=0或者顯式事務的方式手動開啟多條語句組成的交互式事務。

顯示事務是由用戶自定義或用戶指定的事務。通過START TRANSACTION,或BEGIN(被作為START TRANSACTION的別名得到支持)語句顯示開始,以COMMIT或ROLLBACK語句顯示結束。

語法

START TRANSACTION
  [transaction_characteristic [, transaction_characteristic] ...]

transaction_characteristic: {
    WITH CONSISTENT SNAPSHOT
  | ISOLATION LEVEL {REPEATABLE READ | READ COMMITTED}
  | READ WRITE
  | READ ONLY
}

BEGIN
COMMIT
ROLLBACK
SET autocommit = {0 | 1}

參數說明

參數 說明
START TRANSACTION [READ ONLY | READ WRITE] 啟動新的事務,隨后執行的DML語句(即INSERT、UPDATE、DELETE等)直到事務提交時才會生效。
  • READ ONLY子句表示事務以只讀方式開啟,事務內不允許執行修改操作。
  • READ WRITE子句表示事務以讀寫方式開啟,默認為此種模式。
START TRANSACTION WITH CONSISTENT SNAPSHOT 啟動新的事務,如果沒有顯式指定隔離級別,則事務的隔離級別為REPEATABLE READ。
START TRANSACTION ISOLATION LEVEL {REPEATABLE READ | READ COMMITTED} 啟動新的事務,并為事務設置指定的隔離級別。
BEGIN BEGIN被作為START TRANSACTION的別名得到支持。
COMMIT 提交當前事務。
ROLLBACK 回滾當前事務。
SET autocommit = {0 | 1} 為當前會話(session)關閉/開啟自動提交(autocommit)模式。