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

¿SET variable definida por el usuario en mysql devuelve nulo?

La única forma en que esto puede suceder (en una sesión de cliente), y la forma en que me sucede a mí de vez en cuando, es que te muerda un breve tiempo de espera en la conexión del cliente. Va así:

mysql> set @a = 10;

mysql> [wait for N+1 minutes, where N is the client timeout]

mysql> select @a;
+------+
| NULL |
+------+
| NULL | 
+------+
1 row in set (0.00 sec)

Debe inicializar sus variables y usarlas dentro de una sesión de cliente contigua. Cuando la sesión desaparece, pierdes todas tus variables.

La otra explicación, como señalaron otros en los comentarios, es que los comandos llegan al servidor desde diferentes conexiones; es posible que su problema no sea un tiempo de espera, sino que está originando los comandos "SET ..." y "SELECT ..." en diferentes conexiones. Las variables de usuario no se comparten entre diferentes conexiones.