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

สร้าง Stored Procedure พารามิเตอร์ IN/OUT ใน MySQL

รูปแบบสร้าง Procedure ที่รับ IN และส่งค่าออก OUT:

DELIMITER //
CREATE PROCEDURE procName(IN inParam TYPE, OUT outParam TYPE)
BEGIN
    -- statements
END //
DELIMITER ;

ตัวอย่าง: ตรวจสอบค่าในตาราง

สร้างตาราง SumOfAll (Amount) เพิ่มข้อมูล 100, 330, 450, 400

mysql> DELIMITER //
mysql> CREATE PROCEDURE sp_CheckValue(IN value1 INT, OUT value2 INT)
    -> BEGIN
    -> SET value2 = (SELECT Amount FROM SumOfAll WHERE Amount = value1);
    -> END;
    -> //
mysql> DELIMITER ;

ทดสอบเรียกใช้

กรณีไม่พบค่า (300):

mysql> CALL sp_CheckValue(300, @isPresent);
mysql> SELECT @isPresent; -- NULL

กรณีพบค่า (330):

mysql> CALL sp_CheckValue(330, @isPresent);
mysql> SELECT @isPresent; -- 330

คำอธิบาย: Subquery ใน SET คืนค่า NULL หาไม่เจอ ทำให้ OUT Parameter ได้ NULL ตามต้องการ