sql >> Database >  >> RDS >> Mysql

SET door de gebruiker gedefinieerde variabele in mysql return null?

De enige manier waarop dit kan gebeuren (in een clientsessie) - en zoals het bij mij van tijd tot tijd gebeurt - is dat je een korte time-out krijgt op de clientverbinding. Het gaat als volgt:

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)

U moet uw variabelen initialiseren en gebruiken binnen een aaneengesloten clientsessie. Wanneer de sessie stopt, verlies je al je variabelen.

De andere verklaring, zoals door anderen in de opmerkingen is aangegeven, is dat de opdrachten de server vanuit verschillende verbindingen raken; uw probleem is misschien niet een time-out, maar dat u de commando's "SET ..." en "SELECT ..." in verschillende verbindingen start. Gebruikersvariabelen worden niet gedeeld tussen verschillende verbindingen.




  1. Gekoppelde tabellen bijwerken in Access 2016 nadat de backend-database naar een nieuwe locatie is verplaatst

  2. MySQL-fout 2006:mysql-server is verdwenen

  3. Registreer wijzigingen in SQL-server in een controletabel

  4. Hoe kan ik voorbereide verklaringen in CodeIgniter gebruiken?