2012-05-09 16 views
15

Sự khác nhau giữa việc truy cập biến với @ hoặc không có gì?Biểu tượng @ có nghĩa là gì đối với Thủ tục trong MySQL?

+1

Tôi không phải là MySql chàng trai, nhưng tôi muốn học. Theo như tôi có thể thấy từ tài liệu, các biến được định nghĩa là có một "@" giống như với SQL Server. Các "@" là những gì nói với động cơ đó là một tên biến. Tôi không chắc chắn làm thế nào bạn có thể truy cập một biến mà không có @. Bạn có thể làm rõ? Có thể hiển thị các mẫu mã mà bạn sử dụng "@" và nơi bạn không sử dụng? http://dev.mysql.com/doc/refman/5.0/en/user-variables.html – David

+0

đã được trả lời trên ngăn xếp tràn bộ đệm này ra http://stackoverflow.com/questions/361747/what-does-the- symbol-do-in-sql –

Trả lời

11

Các @ làm cho nó một user definedphiên biến. Nếu không, nó sẽ là locally scoped biến (trong một số stored procedure), bạn sẽ phải DEFINE địa phương của mình trước khi bạn có thể SET biến đó. Bạn cũng có thể đặt số toàn cầuhệ thống biến (với SET GLOBAL hoặc SET @@global) nếu bạn muốn. Cũng như phiên hệ thống biến với SET SESSION var hoặc SET @@session var hoặc SET @@var.

Thêm chi tiết về SET từ the documentation: Nếu không có công cụ sửa đổi, SET thay đổi biến phiên (đó là lý do tại sao bạn DEFINE người dân địa phương của bạn trong thủ tục được lưu trữ trước). Nếu bạn đặt một số biến hệ thống, thì công cụ sửa đổi GLOBAL hoặc SESSION gần đây nhất trong tuyên bố được sử dụng cho các biến sau không có công cụ sửa đổi được chỉ định.

More (và một số ví dụ tốt) ở đây:

+0

Cảm ơn! Điều đó trả lời câu hỏi của tôi trên bình luận ở trên cũng như câu hỏi của OP ban đầu! +1. – David

Các vấn đề liên quan