天天看點

開發指南—TCL語句

預設情況下,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模式。