Để trả về một giá trị từ thủ tục được lưu trữ, bạn cần sử dụng biến phiên cụ thể do người dùng xác định. Thêm ký hiệu @ trước tên biến.
Ví dụ:sử dụng @symbol cho biến valido. Cú pháp cho tương tự như sau:
SELECT @valido;
Bất cứ khi nào bạn sử dụng câu lệnh select, bạn cần sử dụng @anyVariableName. Cú pháp như sau:
SELECT @anyVariableName;
Đây là bản demo của thủ tục lưu trữ giá trị trả về. Truy vấn để tạo một thủ tục được lưu trữ như sau:
mysql> create procedure ReturnValueFrom_StoredProcedure -> ( -> In num1 int, -> In num2 int, -> out valido int -> ) -> Begin -> IF (num1> 4 and num2 > 5) THEN -> SET valido = (num1+num2); -> ELSE -> SET valido = (num1-num2); -> END IF; -> select @valido; -> end // Query OK, 0 rows affected (0.32 sec) mysql> DELIMITER ;
Gọi thủ tục đã lưu bằng lệnh CALL. Truy vấn như sau:
mysql> call ReturnValueFrom_StoredProcedure(10,6,@TotalSum); +---------+ | @valido | +---------+ | NULL | +---------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.01 sec)
Bây giờ kiểm tra kết quả của thủ tục được lưu trữ bằng cách sử dụng câu lệnh select. Truy vấn như sau:
mysql> select @TotalSum;
Sau đây là kết quả:
+-----------+ | @TotalSum | +-----------+ | 16 | +-----------+ 1 row in set (0.00 sec)
Bây giờ gọi thứ hai cho sự khác biệt của hai giá trị. Gọi thủ tục đã lưu trữ.
mysql> call ReturnValueFrom_StoredProcedure(4,2,@TotalDiff); +---------+ | @valido | +---------+ | NULL | +---------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.01 sec)
Kiểm tra kết quả từ biến phiên cụ thể do người dùng xác định bằng cách sử dụng câu lệnh select. Truy vấn như sau:
mysql> select @TotalDiff;
Sau đây là kết quả:
+------------+ | @TotalDiff | +------------+ | 2 | +------------+ 1 row in set (0.00 sec)