Mysql
 sql >> база данни >  >> RDS >> Mysql

SET потребителски дефинирана променлива в mysql да върне null?

Единственият начин това може да се случи (в клиентска сесия) - и начинът, по който се случва при мен от време на време - е да получите кратко време за изчакване на клиентската връзка. Става така:

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)

Трябва да инициализирате променливите си и да ги използвате в рамките на непрекъсната клиентска сесия. Когато сесията изчезне, губите всичките си променливи.

Другото обяснение, както е посочено от други в коментарите, е, че командите удрят сървъра от различни връзки; проблемът ви може да не е изчакване, а че създавате командите "SET ..." и "SELECT ..." в различни връзки. Потребителските променливи не се споделят в различни връзки.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. АКТУАЛИЗИРАНЕ/ИЗТРИВАНЕ в mysql и да получите списъка със засегнатите идентификатори на редове?

  2. SQL:как да подредя по поле, ако не е нула, иначе използвам друго поле

  3. Изберете част от MySQL Blob поле

  4. MySQL заявка проверява две стойности в една колона

  5. xampp MySQL не се стартира