本文介紹了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等)直到事務提交時才會生效。
|
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)模式。 |