การเตรียมข้อมูล
mysql> CREATE TABLE DemoTable1860 (Amount INT);
mysql> INSERT INTO DemoTable1860 VALUES(1590), (410), (3000);
สร้าง Stored Procedure ด้วย OUT Parameter
mysql> DELIMITER //
mysql> CREATE PROCEDURE use_of_out_parameter(OUT TotalAmount INT)
BEGIN
SELECT SUM(Amount) INTO TotalAmount FROM DemoTable1860;
END //
mysql> DELIMITER ;
เรียกใช้ Procedure
mysql> CALL use_of_out_parameter(@TotalAmount);
Query OK, 1 row affected (0.00 sec)
mysql> SELECT @TotalAmount;
+--------------+
| @TotalAmount |
+--------------+
| 5000 |
+--------------+
องค์ประกอบสำคัญ
| ส่วน | คำอธิบาย | |
|---|---|---|
DELIMITER // | เปลี่ยน Delimiter ชั่วคราว เพื่อใช้ ; ใน Procedure | |
OUT TotalAmount INT | Parameter แบบ Output (ส่งค่ากลับ) | |
SELECT ... INTO var | กำหนดค่าตัวแปรจาก Query (ต้องคืน 1 Row 1 Col) | |
@TotalAmount | User Variable รับค่าจาก OUT Parameter |
| Mode | คำอธิบาย | ตัวอย่าง |
|---|---|---|
| IN | Input (Default) ส่งค่าเข้า | IN param INT |
| OUT | Output ส่งค่าออก | OUT param INT |
| INOUT | ทั้ง Input และ Output | INOUT param INT |