Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Variáveis ​​locais do MySQL


O MySQL tem dois tipos diferentes de variáveis:

  • variáveis ​​locais (que não são prefixado por @ ) são fortemente tipados e com escopo definido para o bloco de programa armazenado no qual são declarados. Observe que, conforme documentado em DECLARE Sintaxe :

  • variáveis ​​de usuário (que são prefixado por @ ) são digitados livremente e com escopo definido para a sessão. Observe que eles não precisam nem podem ser declarados - apenas use-os diretamente.

Portanto, se você estiver definindo um programa armazenado e realmente quiser uma "variável local", de acordo com o texto da sua pergunta, será necessário descartar o @ caractere e certifique-se de que seu DECLARE instrução está no início do seu bloco de programa. Caso contrário, para usar uma "variável de usuário", solte o DECLARE demonstração.

Além disso, você precisará colocar sua consulta entre parênteses para executá-la como uma subconsulta:
SET @countTotal = (SELECT COUNT(*) FROM nGrams);

Ou então, você pode usar SELECT ... INTO :
SELECT COUNT(*) INTO @countTotal FROM nGrams;