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

Stored Procedure MySQL với tham số OUT

Tạo Stored Procedure có tham số OUT trong MySQL

Tham số OUT cho phép procedure trả về giá trị cho biến phiên (session variable) của caller.

Cú pháp tạo procedure

DELIMITER //
CREATE PROCEDURE tenProcedure(
    IN tenParamIn KIEU_DU_LIEU,
    OUT tenParamOut KIEU_DU_LIEU
)
BEGIN
    -- logic xử lý
    SET tenParamOut = bieu_thuc;
END //
DELIMITER ;

Ví dụ: Tính căn bậc hai

DELIMITER //
CREATE PROCEDURE Sp_SQRT(IN Number1 INT, OUT Number2 FLOAT)
BEGIN
    SET Number2 = SQRT(Number1);
END //
DELIMITER ;

Gọi procedure và lấy kết quả

-- Gọi procedure, lưu kết quả vào biến phiên @MySquareRootNumber
CALL Sp_SQRT(36, @MySquareRootNumber);

-- Xem giá trị biến
SELECT @MySquareRootNumber;

Kết quả

+---------------------+
| @MySquareRootNumber |
+---------------------+
|                   6 |
+---------------------+

Lưu ý quan trọng

  • Biến phiên (session variable) bắt đầu bằng @ (ví dụ: @tenBien).
  • IN: Truyền giá trị VÀO procedure (read-only bên trong).
  • OUT: Trả giá trị RA khỏi procedure (giá trị ban đầu là NULL).
  • INOUT: Cả hai chiều (đọc và ghi).
  • Phải dùng DELIMITER khi tạo procedure chứa nhiều câu lệnh.

Ứng dụng thực tế

Tính tổng doanh thu theo tháng, trả về qua OUT param để ứng dụng lấy dùng ngay mà không cần SELECT lại.