Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ใช้ OUT Parameter ใน Stored Procedure MySQL ด้วย SELECT INTO

การเตรียมข้อมูล

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 |
+--------------+

องค์ประกอบสำคัญ

Parameter Modes

ส่วนคำอธิบาย
DELIMITER //เปลี่ยน Delimiter ชั่วคราว เพื่อใช้ ; ใน Procedure
OUT TotalAmount INTParameter แบบ Output (ส่งค่ากลับ)
SELECT ... INTO varกำหนดค่าตัวแปรจาก Query (ต้องคืน 1 Row 1 Col)
@TotalAmountUser Variable รับค่าจาก OUT Parameter

ตัวอย่าง INOUT

CREATE PROCEDURE double_value(INOUT num INT)
BEGIN
    SET num = num * 2;
END //

SET @x = 5;
CALL double_value(@x);
SELECT @x;  -- 10

ข้อควรระวัง

  • SELECT ... INTO ต้องคืนค่า 1 แถว 1 คอลัมน์พอดี
  • ใช้ LIMIT 1 ป้องกัน Error
  • OUT Parameter ต้องเป็น Variable (User Variable @var หรือ Local Variable)
Modeคำอธิบายตัวอย่าง
INInput (Default) ส่งค่าเข้าIN param INT
OUTOutput ส่งค่าออกOUT param INT
INOUTทั้ง Input และ OutputINOUT param INT