Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

SET biến do người dùng xác định trong mysql trả về null?

Cách duy nhất điều này có thể xảy ra (trong một phiên khách hàng) - và theo cách mà nó xảy ra với tôi theo thời gian - là bạn nhận được một chút thời gian chờ ngắn trên kết nối máy khách. Nó diễn ra như thế này:

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)

Bạn phải khởi tạo các biến của mình và sử dụng chúng trong một phiên khách hàng liền kề. Khi phiên kết thúc, bạn sẽ mất tất cả các biến của mình.

Giải thích khác, như được chỉ ra bởi những người khác trong các nhận xét, là các lệnh đang truy cập vào máy chủ từ các kết nối khác nhau; vấn đề của bạn có thể không phải là hết thời gian chờ, mà là bạn đang khởi tạo các lệnh "SET ..." và "SELECT ..." trong các kết nối khác nhau. Các biến người dùng không được chia sẻ trên các kết nối khác nhau.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có bao nhiêu hàng là 'quá nhiều' đối với một bảng MySQL?

  2. Mối quan hệ lồng nhau với Sequelize

  3. Đọc từ tệp thành biến - Bash Script take2

  4. Làm cách nào để loại trừ các ngày cuối tuần khỏi date_sub?

  5. Ý nghĩa của <> trong truy vấn mysql là gì?