Les variables de session permettent de contrôler le comportement du moteur SQL pour chaque connexion. Les modifications prennent effet immédiatement pour la session en cours et n'affectent pas les autres sessions.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Lindorm SQL version 2.8.4.0 ou ultérieure. Pour vérifier votre version, consultez Versions SQL.
Moteurs applicables
LindormTable et LindormTSDB (toutes versions).
Syntaxe
Définir une variable de session :
SET [SESSION] variable_identifier = literal
Interroger une variable de session :
SELECT @@variable_identifier
Les noms de variables suivent les mêmes règles lexicales que les identifiants courants. Pour plus de détails, consultez Structure lexicale de Lindorm SQL.
Référence des variables de session
Les paramètres définis au niveau de la session via SET ont priorité sur les paramètres globaux définis via ALTER SYSTEM. En cas de conflit, la valeur au niveau de la session prévaut toujours.
La modification des paramètres au niveau de la session affecte le comportement du moteur SQL pendant toute la durée de la session. Assurez-vous de bien comprendre chaque paramètre avant de le modifier.
TIME_ZONE
| Attribut | Valeur |
|---|---|
| Data type | String |
| Default | +08:00 (UTC+8) |
| Applicable engine | LindormTable |
| Protocol constraint | Protocole MySQL uniquement |
Définit le fuseau horaire pour la session en cours. Disponible uniquement lors de la connexion via le protocole MySQL.
SQL_MODE
| Attribut | Valeur |
|---|---|
| Data type | String |
| Applicable engine | LindormTable, LindormTSDB |
| Introduced in | Lindorm SQL 2.8.4.8 |
Contrôle le comportement d'analyse du moteur SQL. Pour définir plusieurs modes, séparez-les par une virgule (,).
Valeur prise en charge unique :
NO_BACKSLASH_ESCAPES— Les barres obliques inverses (\) sont traitées comme des caractères littéraux plutôt que comme des caractères d'échappement lors de l'analyse des littéraux de chaîne.
Exemples
Modifier le fuseau horaire de la session
-
Interrogez le fuseau horaire actuel de la session :
SELECT @@TIME_ZONE;Sortie attendue :
+-------------+ | @@TIME_ZONE | +-------------+ | +08:00 | +-------------+ -
Modifiez le fuseau horaire pour UTC :
SET TIME_ZONE='UTC'; -
Vérifiez la modification :
SELECT @@TIME_ZONE;Sortie attendue :
+-------------+ | @@TIME_ZONE | +-------------+ | UTC | +-------------+
Pour plus de détails sur l'impact du fuseau horaire de la session sur les données d'horodatage, consultez Spécifier un fuseau horaire pour une connexion LindormTable.
Désactiver l'échappement par barre oblique inverse
-
Interrogez un littéral de chaîne pour observer le comportement d'échappement par défaut :
SELECT '{\"key\":\"va\\lu\'e\r\n\"}';Sortie attendue :
+---------------------+ | EXPR$0 | +---------------------+ | {"key":"va\lu'e "} | +---------------------+ -
Définissez
NO_BACKSLASH_ESCAPESpour désactiver l'échappement par barre oblique inverse :SET SQL_MODE='NO_BACKSLASH_ESCAPES'; -
Exécutez la même requête pour vérifier la modification :
SELECT '{\"key\":\"va\\lu\'e\r\n\"}';Sortie attendue :
+-----------------------------+ | EXPR$0 | +-----------------------------+ | {\"key\":\"va\\lu\'e\r\n\"} | +-----------------------------+Avec
NO_BACKSLASH_ESCAPESactivé, les barres obliques inverses ne sont plus traitées comme des caractères d'échappement, de sorte que la chaîne est renvoyée telle quelle.