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

Cách khai báo biến đúng trong stored procedure MySQL

Trong stored procedure MySQL, biến cục bộ (local variable) phải khai báo bằng DECLARE ngay sau BEGIN, trước mọi statement khác.

Quy tắc

  1. Khai báo giữa BEGIN và END.
  2. Phải là statement đầu tiên sau BEGIN.
  3. Cú pháp: DECLARE var_name data_type [DEFAULT value];

Ví dụ minh họa

DELIMITER //
CREATE PROCEDURE showVariablesValue()
BEGIN
    DECLARE output VARCHAR(100);
    SET output = 'Hello MySQL';
    SELECT output;
END //
DELIMITER ;

Gọi procedure:

CALL showVariablesValue();

Kết quả:

+-------------+
| output      |
+-------------+
| Hello MySQL |
+-------------+

Lưu ý:

  • Biến cục bộ (DECLARE) khác biến user-defined (@var). Biến cục bộ chỉ tồn tại trong procedure, không có dấu @.
  • Có thể khai báo nhiều biến: DECLARE a INT DEFAULT 0; DECLARE b VARCHAR(50); hoặc DECLARE a INT DEFAULT 0, b VARCHAR(50);.
  • Gán giá trị: SET var = expr; hoặc SELECT col INTO var FROM ....
  • Khai báo sai vị trí (sau SELECT hoặc INSERT) sẽ báo lỗi: ERROR 1337 (HY000): Variable declaration must be at start of block.