Lindorm SQL では、セッションごとにセッション変数を指定して、セッションの状態を管理できます。状態の変更は現在のセッションにのみ有効で、他のセッションには影響しません。
適用可能なエンジンとバージョン
この構文は、LindormTable および LindormTSDB のすべてのバージョンに適用できます。
Lindorm SQL のバージョンは 2.8.4.0 以降である必要があります。 Lindorm SQL のバージョンの確認方法については、SQL バージョンをご参照ください。
構文
セッション変数を指定する
set_variable_statement ::= SET [SESSION] variable_identifier '=' literalセッション変数を照会する
query_variable_statement ::= SELECT @@variable_identifier使用方法に関する注意事項
変数識別子
変数名の字句規則は、一般的な識別子の字句規則と同じです。変数名は、変数を表すために使用される識別子です。識別子の詳細については、Lindorm SQL の字句構造をご参照ください。
セッションレベルのパラメーター
SET文で指定されたセッションレベルのパラメーターは、ALTER SYSTEM文で指定されたグローバルシステムパラメーターよりも優先されます。セッションレベルのパラメーターとグローバルパラメーターが競合する場合、SET文で指定されたセッションレベルのパラメーター値が優先されます。セッションレベルのパラメーターを変更すると、セッション中の SQL エンジンの動作に影響を与える可能性があります。パラメーターを変更する前に、パラメーターを十分に理解することをお勧めします。次の表に、パラメーターを示します。
パラメーター | データ型 | 該当するエンジン | 説明 |
TIME_ZONE 重要 このパラメーターは MySQL プロトコルに対してのみ指定できます。詳細については、MySQL プロトコルを使用したアプリケーションの開発(推奨)をご参照ください。 | 文字列 | LindormTable | 現在のセッションのタイムゾーンを指定します。デフォルトでは、タイムゾーンは UTC+8 に設定されています。 |
SQL_MODE 重要 Lindorm SQL のバージョンは 2.8.4.8 以降である必要があります。 | 文字列 |
| SQLエンジンの解析モードを指定します。複数の解析モードを指定する場合は、解析モードをコンマ ( このパラメーターは、 |
例
現在のセッションのタイムゾーンを変更する
タイムゾーンを変更する前に、次のステートメントを実行して、現在のセッションのタイムゾーンを表示します。
SELECT @@TIME_ZONE;結果例:
+-------------+ | @@TIME_ZONE | +-------------+ | +08:00 | +-------------+現在のセッションのタイムゾーンを
UTCに変更します。SET TIME_ZONE='UTC';SELECT @@TIME_ZONE;ステートメントを実行して、変更が有効になっているかどうかを確認します。結果の例:+-------------+ | @@TIME_ZONE | +-------------+ | UTC | +-------------+説明セッションのタイムゾーンとタイムスタンプデータの関係の詳細については、LindormTable 接続のタイムゾーンを指定するをご参照ください。
SQL エンジンの解析モードを指定する
文字列定数式を照会します。
SELECT '{\"key\":\"va\\lu\'e\r\n\"}';結果例:
+---------------------+ | EXPR$0 | +---------------------+ | {"key":"va\lu'e "} | +---------------------+SQLエンジンの解析モードを指定します。文字列定数を解析する場合は、バックスラッシュ(
\)をエスケープ文字として使用しないでください。SET SQL_MODE='NO_BACKSLASH_ESCAPES';SELECT '{\"key\":\"va\\lu\'e\r\n\"}';ステートメントを実行して、変更が有効になっているかどうかを確認します。サンプル結果:+-----------------------------+ | EXPR$0 | +-----------------------------+ | {\"key\":\"va\\lu\'e\r\n\"} | +-----------------------------+