Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zmienna zdefiniowana przez użytkownika SET w mysql zwraca null?

Jedyny sposób, w jaki może się to zdarzyć (w sesji klienta) - i sposób, w jaki to się dzieje od czasu do czasu - to krótki czas oczekiwania na połączenie klienta. To wygląda tak:

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)

Musisz zainicjować swoje zmienne i używać ich w ciągłej sesji klienta. Po zakończeniu sesji tracisz wszystkie zmienne.

Innym wyjaśnieniem, jak wskazali inni w komentarzach, jest to, że polecenia trafiają do serwera z różnych połączeń; Twoim problemem może nie być przekroczenie limitu czasu, ale to, że polecenia "SET ..." i "SELECT ..." są inicjowane w różnych połączeniach. Zmienne użytkownika nie są współdzielone przez różne połączenia.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Napraw „ERROR 3942 (HY000):Każdy wiersz klauzuli VALUES musi mieć co najmniej jedną kolumnę” podczas korzystania z instrukcji VALUES w MySQL

  2. 500 wewnętrzny błąd serwera?

  3. JPA + Hibernate:Jak zdefiniować ograniczenie mające ON DELETE CASCADE

  4. Grupuj dane giełdowe OHLC w wielu przedziałach czasowych - Mysql

  5. Używasz warstwy bazy danych Django poza Django?