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

Trả về giá trị từ stored procedure trong MySQL

Để trả giá trị từ stored procedure, dùng biến session do người dùng định nghĩa (thêm @ trước tên biến).

Ví dụ biến @valido:

SELECT @valido;

Khi dùng SELECT, cần dùng @tên_biến:

SELECT @anyVariableName;

Demo tạo procedure:

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 procedure lần 1 (10,6):

mysql> call ReturnValueFrom_StoredProcedure(10,6,@TotalSum); +---------+ | @valido | +---------+ | NULL | +---------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.01 sec)

Kiểm tra kết quả:

mysql> select @TotalSum;
+-----------+ | @TotalSum | +-----------+ | 16 | +-----------+ 1 row in set (0.00 sec)

Gọi lần 2 (4,2):

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:

mysql> select @TotalDiff;
+------------+ | @TotalDiff | +------------+ | 2 | +------------+ 1 row in set (0.00 sec)