sql >> Base de Datos >  >> RDS >> Mysql

Variables locales de MySQL

MySQL tiene dos tipos diferentes de variables:

  • variables locales (que no son con el prefijo @ ) están fuertemente tipados y en el ámbito del bloque de programa almacenado en el que se declaran. Tenga en cuenta que, como se documenta en DECLARE Sintaxis :

  • variables de usuario (que son con el prefijo @ ) se escriben libremente y se limitan a la sesión. Tenga en cuenta que no necesitan ni pueden declararse, solo utilícelos directamente.

Por lo tanto, si está definiendo un programa almacenado y realmente quiere una "variable local", según la redacción de su pregunta, deberá soltar el @ carácter y asegúrese de que su DECLARE declaración está al comienzo de su bloque de programa. De lo contrario, para usar una "variable de usuario", suelte DECLARE declaración.

Además, deberá encerrar su consulta entre paréntesis para ejecutarla como una subconsulta:

SET @countTotal = (SELECT COUNT(*) FROM nGrams);

O bien, podría usar SELECT ... INTO :

SELECT COUNT(*) INTO @countTotal FROM nGrams;