Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Tham số Stored Procedure MySQL không hoạt động với ký tự @?

Sử dụng biến người dùng (@) trong MySQL Stored Procedure

Trong MySQL, không thể đặt ký tự @ ở đầu tên tham số của Stored Procedure. Ký tự @ chỉ dùng cho biến người dùng (user-defined variables).

Cú pháp đúng cho biến người dùng

SET @ten_bien = gia_tri;

Ví dụ minh họa

Tạo Stored Procedure nhận tham số IN StudentName, gán vào biến @Name:

mysql> DELIMITER //
mysql> CREATE PROCEDURE declare_Variable(IN StudentName VARCHAR(100))
    BEGIN
        SET @Name = StudentName;
        SELECT @Name;
    END //
Query OK, 0 rows affected (0.12 sec)
mysql> DELIMITER ;

Gọi Stored Procedure:

mysql> CALL declare_Variable('John Smith');

Kết quả:

+------------+
| @Name      |
+------------+
| John Smith |
+------------+
1 row in set (0.00 sec)

Quy tắc tóm tắt

LoạiCú phápVí dụ
Tham số SPKhông có @IN param_name VARCHAR(100)
Biến cục bộ (DECLARE)Không có @DECLARE var_name INT;
Biến người dùng (Session)Có @SET @var_name = 10;

Lưu ý: Biến người dùng (@...) tồn tại trong suốt session, khác với biến cục bộ (DECLARE) chỉ tồn tại trong block BEGIN...END.