Hệ quản trị CSDL MySQL - Biến trong Procedure

Khai báo biến trong thủ tục nội tại

Biến trong thủ tục thường trú dùng để lưu giữ giá trị trong quá trình tính toán. Khai báo biến theo cú pháp sau:

DECLARE variable_name datatype(size) DEFAULT default_value;

Lưu ý:
  • Tên biến không được trung với tên bảng hay tên cột của csdl.
  • Kiểu dữ liệu của biến có thể là bất cứ kiểu nào do MySQL hỗ trợ (như INT, VARCHAR, DATETIME, …)
  • Khi khai báo biến, giá trị ban đầu của nó là NULL.
  • Để đặt giá trị mặc định ta khai báo DEFAULT

Ví dụ: Khai báo biến

DECLARE total_sale INT DEFAULT 0
DECLARE x, y INT DEFAULT 0

Gán giá trị cho biến

Sau khi khai báo biến, chúng ta gán giá trị cho biến để phục vụ tính toán. Để gán giá trị cho biến ta dùng câu lệnh SET.

Ví dụ:

DECLARE total_count INT DEFAULT 0
SET total_count = 10; 


Ngoài câu lệnh SET, chúng ta còn có thể sử dụng lệnh SELECT … INTO để gán giá trị cho biến như ví dụ sau đây:

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

 

Phạm vi của biến

Mỗi biến có phạm vi riêng của nó. Nếu bạn khai báo biến bên trong thân thủ tục thường trú thì nó sẽ kết thúc khi chương trình thực hiện đến lệnh END của thủ tục thường trú. Nếu bạn khai báo một biến bên trong một khối lệnh BEGIN…END thì nó chỉ có phạm vi hoạt động bên trong khối lệnh đó mà thôi.

Biến bắt đầu bằng kí tự @ là biến session (phiên). Nó sẽ kết thúc khi session (phiên) kết thúc.