トランザクションの設定

SET TRANSACTIONステートメントを使用して、現在の分離レベルをGLOBALまたはSESSIONベースで変更できます。この構文はSET transaction_isolation='new-value'の代替であり、MySQLとSQL標準の両方との互換性のために含まれています。

あらすじ

SetStmt
SETVariableAssignmentListPASSWORDFORUsername=PasswordOptGLOBALSESSIONTRANSACTIONTransactionCharsCONFIGIdentifierstringLitConfigItemNameEqOrAssignmentEqSetExpr
TransactionChars
ISOLATIONLEVELIsolationLevelREADWRITEREADONLYAsOfClause
IsolationLevel
REPEATABLEREADREADCOMMITTEDUNCOMMITTEDSERIALIZABLE
AsOfClause
ASOFTIMESTAMPExpression

mysql> SHOW SESSION VARIABLES LIKE 'transaction_isolation'; +-----------------------+-----------------+ | Variable_name | Value | +-----------------------+-----------------+ | transaction_isolation | REPEATABLE-READ | +-----------------------+-----------------+ 1 row in set (0.00 sec) mysql> SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; Query OK, 0 rows affected (0.00 sec) mysql> SHOW SESSION VARIABLES LIKE 'transaction_isolation'; +-----------------------+----------------+ | Variable_name | Value | +-----------------------+----------------+ | transaction_isolation | READ-COMMITTED | +-----------------------+----------------+ 1 row in set (0.01 sec) mysql> SET SESSION transaction_isolation = 'REPEATABLE-READ'; Query OK, 0 rows affected (0.00 sec) mysql> SHOW SESSION VARIABLES LIKE 'transaction_isolation'; +-----------------------+-----------------+ | Variable_name | Value | +-----------------------+-----------------+ | transaction_isolation | REPEATABLE-READ | +-----------------------+-----------------+ 1 row in set (0.00 sec)

MySQLの互換性

  • TiDBは、構文のみでトランザクションを読み取り専用として設定する機能をサポートしています。
  • 分離レベルREAD-UNCOMMITTEDおよびSERIALIZABLEはサポートされていません。
  • REPEATABLE-READの分離レベルは、MySQLと部分的に互換性のあるスナップショット分離テクノロジを使用して実現されます。
  • 悲観的なトランザクションでは、TiDBはMySQLと互換性のある2つの分離レベル( REPEATABLE-READREAD-COMMITTED )をサポートします。詳細な説明については、 分離レベルを参照してください。

も参照してください

このページは役に立ちましたか?