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