คุณสามารถสร้างพารามิเตอร์โดยใช้ IN และ OUT IN ใช้สำหรับรับพารามิเตอร์อินพุต และ OUT สามารถใช้สำหรับเอาต์พุตได้
ไวยากรณ์มีดังนี้
DELIMITER //CREATE PROCEDURE yourProcedureName(IN yourParameterName dataType,OUT yourParameterName dataType)BEGINyourStatement1;yourStatement2;..NEND;//DELIMITER;
ขั้นแรกเราจะสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้
mysql> สร้างตาราง SumOfAll -> ( -> จำนวน int -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.78 วินาที)
แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้
mysql> แทรกลงในค่า SumOfAll (100) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.18 วินาที) mysql> แทรกลงในค่า SumOfAll (330) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.24 วินาที) mysql> แทรกลงในค่า SumOfAll ( 450); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.10 วินาที) mysql> แทรกลงในค่า SumOfAll (400); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.20 วินาที)
แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้
mysql> เลือก *จาก SumOfAll;
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+---------+| จำนวน |+-------+| 100 || 330 || 450 || 400 |+-------+4 แถวในชุด (0.00 วินาที)ตอนนี้เราจะสร้าง Stored Procedure ที่จะตรวจสอบค่าว่ามีอยู่ในตารางหรือไม่ หากค่าที่ระบุไม่มีอยู่ในตาราง คุณจะได้รับค่า NULL
ขั้นตอนการจัดเก็บมีดังนี้
mysql> DELIMITER //mysql> สร้างโพรซีเดอร์ sp_ChechValue (IN value1 int, OUT value2 int) -> start -> set value2=(เลือก Amount จาก SumOfAll โดยที่ Amount=value1); -> สิ้นสุด; -> //แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.20 วินาที) mysql> ตัวคั่น;
ให้เราเรียกใช้กระบวนงานที่เก็บไว้ด้วยค่าบางอย่างและเก็บผลลัพธ์ไว้ในตัวแปรเซสชัน
กรณีที่ 1:เมื่อค่าไม่มีอยู่ในตาราง
mysql> โทร sp_ChechValue(300,@isPresent);ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.00 วินาที)
ตอนนี้ตรวจสอบค่าในตัวแปร @isPresent โดยใช้คำสั่ง select แบบสอบถามมีดังนี้
mysql> เลือก @isPresent;
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+-----------+| @isPresent |+-----------+| NULL |+------------+1 แถวในชุด (0.00 วินาที)กรณีที่ 2:เมื่อมีค่าเป็นปัจจุบัน
แบบสอบถามมีดังนี้ ให้เราเรียกขั้นตอนการจัดเก็บ
mysql> โทร sp_ChechValue(330,@isPresent);ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.00 วินาที)
ตรวจสอบค่าของตัวแปรเซสชัน @isPresent แบบสอบถามมีดังนี้
mysql> เลือก @isPresent;
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+-----------+| @isPresent |+-----------+| 330 |+------------+1 แถวในชุด (0.00 วินาที)