説明
この変数はV2.2.77バージョンから導入されました。
機能の概要
transaction_read_onlyは、読み取り専用トランザクションのみを許可するかどうかを制御します。
権限要件
変数の確認
グローバルレベル
sysテナントとすべてのユーザーテナントはSHOW VARIABLESステートメント、またはSYS.TENANT_VIRTUAL_GLOBAL_VARIABLEビュー(Oracleモード)およびinformation_schema.GLOBAL_VARIABLESビュー(MySQLモード)を使用してグローバルシステム変数の値を確認できます。セッションレベル
sysテナントとすべてのユーザーテナントはSHOW VARIABLESステートメント、またはSYS.TENANT_VIRTUAL_SESSION_VARIABLEビュー(Oracleモード)およびinformation_schema.SESSION_VARIABLESビュー(MySQLモード)を使用してセッションシステム変数の値を確認できます。
変数の変更
グローバル有効
sysテナントはグローバルシステム変数の値を直接変更できます。MySQLユーザーテナントは
SUPERまたはALTER SYSTEM権限が必要です。Oracleユーザーテナントは
ALTER SYSTEM権限が必要です。
セッション有効
sysテナントとすべてのユーザーテナントは、自身のテナントにおけるセッションシステム変数の値を直接変更できます。
プロパティの説明
プロパティ |
説明 |
|---|---|
| パラメータタイプ | Bool |
| デフォルト値 | False |
| 値の範囲 |
|
| 適用範囲 |
|
| 変更は可能か | はい。SETステートメントを使用して変更できます。 |
使用方法
transaction_read_onlyがTrueに設定されている場合、DMLステートメントの実行は許可されません。
設定例
非読み取り専用トランザクションの開始を許可します。
セッション有効
obclient> SET transaction_read_only = False;グローバル有効
obclient> SET GLOBAL transaction_read_only = False;