Computer >> Máy Tính >  >> Lập trình >> MySQL

MySQL lưu trữ thủ tục trả về giá trị?

Để 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)