sql >> Database teknologi >  >> RDS >> Mysql

SET brugerdefineret variabel i mysql returner null?

Den eneste måde dette kan ske (i en klientsession) - og sådan som det sker for mig fra tid til anden - er, at du bliver bidt af en kort timeout på klientforbindelsen. Det går sådan her:

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)

Du skal initialisere dine variabler og bruge dem i en sammenhængende klientsession. Når sessionen går væk, mister du alle dine variabler.

Den anden forklaring, som påpeget af andre i kommentarerne, er, at kommandoerne rammer serveren fra forskellige forbindelser; dit problem er muligvis ikke en timeout, men at du stammer fra kommandoerne "SET ..." og "SELECT ..." i forskellige forbindelser. Brugervariabler deles ikke på tværs af forskellige forbindelser.




  1. Undtagelse i forbindelse med mysql gennem jdbc

  2. Fejlfinding af Microsoft SQL Server-fejl 18456

  3. MySQL High Availability Framework Forklaret – Del I:Introduktion

  4. utf8_bin vs. utf_unicode_ci