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

MySQL Stored Procedure คืนค่าอย่างไร?


เพื่อคืนค่าจาก Stored Procedure ต้องใช้ตัวแปร Session-specific ที่ผู้ใช้กำหนด (User-defined Variable) โดยใส่สัญลักษณ์ @ นำหน้าชื่อตัวแปร

ตัวอย่างการใช้งาน

สร้าง Stored Procedure ที่รับค่า 2 ตัว ส่งค่ากลับผ่านตัวแปร OUT:

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 ;

เรียก Stored Procedure ครั้งแรก (10, 6 ตรงเงื่อนไขบวก):

mysql> CALL ReturnValueFrom_StoredProcedure(10, 6, @TotalSum);

ตรวจสอบผลลัพธ์จากตัวแปร Session:

mysql> SELECT @TotalSum;

ผลลัพธ์:

+-----------+ | @TotalSum | +-----------+ | 16        | +-----------+ 1 row in set (0.00 sec)

เรียก Stored Procedure ครั้งที่สอง (4, 2 ไม่ตรงเงื่อนไข ลบกัน):

mysql> CALL ReturnValueFrom_StoredProcedure(4, 2, @TotalDiff);

ตรวจสอบผลลัพธ์:

mysql> SELECT @TotalDiff;

ผลลัพธ์:

+------------+ | @TotalDiff | +------------+ | 2          | +------------+ 1 row in set (0.00 sec)

สรุป: ใช้ตัวแปร OUT ใน Stored Procedure แล้วรับค่าผ่านตัวแปร @variable_name หลังจาก CALL