すべてのプロダクト
Search
ドキュメントセンター

Lindorm:セッション変数

最終更新日:Jan 14, 2025

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 以降である必要があります。

文字列

  • LindormTable

  • LindormTSDB

SQLエンジンの解析モードを指定します。複数の解析モードを指定する場合は、解析モードをコンマ (,) で区切ります。

このパラメーターは、NO_BACKSLASH_ESCAPES のみに設定できます。これは、文字列定数を解析するときにバックスラッシュ (\) がエスケープ文字として使用されないことを指定します。

現在のセッションのタイムゾーンを変更する

  1. タイムゾーンを変更する前に、次のステートメントを実行して、現在のセッションのタイムゾーンを表示します。

    SELECT @@TIME_ZONE;

    結果例:

    +-------------+
    | @@TIME_ZONE |
    +-------------+
    | +08:00      |
    +-------------+
  2. 現在のセッションのタイムゾーンを UTC に変更します。

    SET TIME_ZONE='UTC';

    SELECT @@TIME_ZONE; ステートメントを実行して、変更が有効になっているかどうかを確認します。結果の例:

    +-------------+
    | @@TIME_ZONE |
    +-------------+
    | UTC         |
    +-------------+
    説明

    セッションのタイムゾーンとタイムスタンプデータの関係の詳細については、LindormTable 接続のタイムゾーンを指定するをご参照ください。

SQL エンジンの解析モードを指定する

  1. 文字列定数式を照会します。

    SELECT '{\"key\":\"va\\lu\'e\r\n\"}';

    結果例:

    +---------------------+
    | EXPR$0              |
    +---------------------+
    | {"key":"va\lu'e
    "} |
    +---------------------+
  2. SQLエンジンの解析モードを指定します。文字列定数を解析する場合は、バックスラッシュ(\)をエスケープ文字として使用しないでください。

    SET SQL_MODE='NO_BACKSLASH_ESCAPES';

    SELECT '{\"key\":\"va\\lu\'e\r\n\"}'; ステートメントを実行して、変更が有効になっているかどうかを確認します。サンプル結果:

    +-----------------------------+
    | EXPR$0                      |
    +-----------------------------+
    | {\"key\":\"va\\lu\'e\r\n\"} |
    +-----------------------------+