📣

TiDB Cloud Serverless が
Starter
に変わりました!このページは自動翻訳されたものです。
原文はこちらからご覧ください。

トランザクションの設定

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をサポートしています。詳細については、 分離レベル参照してください。

参照

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