As variáveis de sessão permitem controlar o comportamento do mecanismo SQL por conexão. As alterações entram em vigor imediatamente na sessão atual e não afetam outras sessões.
Pré-requisitos
Antes de começar, verifique se você tem:
Lindorm SQL versão 2.8.4.0 ou posterior. Para verificar sua versão, consulte Versões do SQL.
Mecanismos aplicáveis
LindormTable e LindormTSDB (todas as versões).
Sintaxe
Definir uma variável de sessão:
SET [SESSION] variable_identifier = literal
Consultar uma variável de sessão:
SELECT @@variable_identifier
Os nomes das variáveis seguem as mesmas regras lexicais dos identificadores comuns. Para mais detalhes, consulte Estrutura léxica do Lindorm SQL.
Referência de variáveis de sessão
Os parâmetros no nível de sessão definidos com SET têm precedência sobre os parâmetros globais definidos com ALTER SYSTEM. Em caso de conflito, o valor no nível de sessão sempre prevalece.
A modificação de parâmetros no nível de sessão afeta o comportamento do mecanismo SQL durante toda a sessão. Compreenda cada parâmetro antes de alterá-lo.
TIME_ZONE
|
Atributo |
Valor |
|
Data type |
String |
|
Default |
|
|
Applicable engine |
LindormTable |
|
Protocol constraint |
Apenas protocolo MySQL |
Define o fuso horário da sessão atual. Disponível apenas para conexões via protocolo MySQL.
SQL_MODE
|
Atributo |
Valor |
|
Data type |
String |
|
Applicable engine |
LindormTable, LindormTSDB |
|
Introduced in |
Lindorm SQL 2.8.4.8 |
Controla o comportamento de análise do mecanismo SQL. Para definir vários modos, separe-os por vírgula (,).
Único valor compatível:
NO_BACKSLASH_ESCAPES— As barras invertidas (\) são tratadas como caracteres literais, e não como caracteres de escape, durante a análise de strings literais.
Exemplos
Alterar o fuso horário da sessão
-
Consulte o fuso horário atual da sessão:
SELECT @@TIME_ZONE;Saída esperada:
+-------------+ | @@TIME_ZONE | +-------------+ | +08:00 | +-------------+ -
Altere o fuso horário para UTC:
SET TIME_ZONE='UTC'; -
Verifique a alteração:
SELECT @@TIME_ZONE;Saída esperada:
+-------------+ | @@TIME_ZONE | +-------------+ | UTC | +-------------+
Para obter detalhes sobre como o fuso horário da sessão afeta os dados de timestamp, consulte Especificar um fuso horário para uma conexão LindormTable.
Desativar o escape de barra invertida
-
Consulte uma string literal para observar o comportamento padrão de escape:
SELECT '{\"key\":\"va\\lu\'e\r\n\"}';Saída esperada:
+---------------------+ | EXPR$0 | +---------------------+ | {"key":"va\lu'e "} | +---------------------+ -
Defina
NO_BACKSLASH_ESCAPESpara desativar o escape de barra invertida:SET SQL_MODE='NO_BACKSLASH_ESCAPES'; -
Execute a mesma consulta para verificar a alteração:
SELECT '{\"key\":\"va\\lu\'e\r\n\"}';Saída esperada:
+-----------------------------+ | EXPR$0 | +-----------------------------+ | {\"key\":\"va\\lu\'e\r\n\"} | +-----------------------------+Com
NO_BACKSLASH_ESCAPESativo, as barras invertidas deixam de ser tratadas como caracteres de escape e a string é retornada exatamente como foi escrita.