MySQL Stored Procedure Variables

http://www.mysqltutorial.org/variables-in-stored-procedures.aspx

Tóm tắt: trong hướng dẫn này, bạn sẽ tìm hiểu về các biến trong thủ tục được lưu trữ, cách khai báo và sử dụng các biến. Ngoài ra, bạn sẽ tìm hiểu về phạm vi của các biến.

Một biến là một đối tượng dữ liệu được đặt tên có giá trị có thể thay đổi trong quá trình thực hiện thủ tục được lưu trữ. Chúng tôi thường sử dụng các biến trong các thủ tục được lưu trữ để giữ kết quả ngay lập tức. Các biến này là cục bộ của thủ tục lưu trữ. Bạn phải khai báo một biến trước khi sử dụng nó.

Declaring variables

DECLARE variable_name datatype(size) DEFAULT default_value;

For example, we can declare a variable named total_sale with the data type INT and default value 0 as follows:

DECLARE total_sale INT DEFAULT 0;

MySQL allows you to declare two or more variables that share the same data type using a single DECLARE statement as follows:

DECLARE x, y INT DEFAULT 0;

Assigning variables

DECLARE total_count INT DEFAULT 0;
SET total_count = 10;

Bên cạnh câu lệnh SET, bạn có thể sử dụng câu lệnh SELECT INTO để gán kết quả của truy vấn, trả về giá trị vô hướng cho một biến. Xem ví dụ sau:

DECLARE total_products INT DEFAULT 0;
SELECT 
   COUNT(*) INTO total_products
FROM 
   products;

+ Đầu tiên, chúng tôi đã khai báo một biến có tên là Total_products và khởi tạo giá trị của nó thành 0. + Sau đó, chúng tôi đã sử dụng câu lệnh SELECT INTO để gán biến Total_products số lượng sản phẩm mà chúng tôi đã chọn từ bảng sản phẩm trong cơ sở dữ liệu mẫu.

Ví dụ đã ok:

mysql> SET @a = 'test'; 
mysql> SELECT @a;
Result:
+------+
| @a   |
+------+
| test |
+------+

Một ví dụ khác ok

DELIMITER //
CREATE PROCEDURE prc_test (var INT)
BEGIN
    DECLARE  var2 INT;
    SET var2 = 1;
    SELECT  var2;
END;
//
DELIMITER ;
CALL prc_test(3)
Kết quả:
+------+
| var2 |
+------+
|    1 |
+------+

Tham khảo: https://stackoverflow.com/questions/1009954/mysql-variable-vs-variable-whats-the-difference

Tham khảo video: SQL Server Programming Part 3 - Variables

https://www.youtube.com/watch?v=NmYaOlcbfZM

https://www.youtube.com/watch?v=6PMDXuFUFb0

Variables scope

Một biến có phạm vi riêng xác định thời gian tồn tại của nó. Nếu bạn khai báo một biến trong một thủ tục được lưu trữ, nó sẽ nằm ngoài phạm vi khi câu lệnh END của thủ tục được lưu trữ đạt đến.

Nếu bạn khai báo một biến trong khối BEGIN END, nó sẽ nằm ngoài phạm vi nếu đạt đến END. Bạn có thể khai báo hai hoặc nhiều biến có cùng tên trong các phạm vi khác nhau vì một biến chỉ có hiệu lực trong phạm vi của chính nó. Tuy nhiên, khai báo các biến có cùng tên trong các phạm vi khác nhau không phải là thực hành lập trình tốt.

Một biến có tên bắt đầu bằng dấu @ là biến phiên. Nó có sẵn và có thể truy cập cho đến khi phiên kết thúc.

Trong hướng dẫn này, chúng tôi đã chỉ cho bạn cách khai báo một biến trong các thủ tục được lưu trữ và thảo luận về phạm vi biến.

Last updated