หลังจากที่เราได้รู้จักกับ Stored Procedure และประโยชน์ของมันไปแล้วในบทความ Stored Procedure คืออะไร และมีประโยชน์อย่างไร บทความนี้เราจะลงมือสร้าง Stored Procedure แรกแบบเข้าใจง่ายกันครับ
คำสั่งสำคัญที่ต้องรู้
ก่อนที่จะสามารถสร้าง Stored Procedure ได้ เราควรรู้จักคำสั่งพื้นฐาน 3 คำสั่งนี้ก่อน
| คำสั่ง | ความหมาย |
|---|---|
DELIMITER | เปลี่ยนตัวแบ่งคำสั่งชั่วคราว เช่น // |
CREATE PROCEDURE | สร้าง Stored Procedure |
CALL | เรียก Stored Procedure ที่สร้างไว้ |
ตัวอย่าง
SQL
1. DELIMITER //
2. CREATE PROCEDURE my_procedure()
BEGIN
-- คำสั่ง SQL
END //
3. DELIMITER ;
4. CALL my_procedure();ตัวอย่างการสร้าง Stored Procedure อย่างง่าย
มาลองสร้าง Procedure ที่แสดงข้อความ “Hello from MySQL” กันครับ
SQL
DELIMITER //
CREATE PROCEDURE say_hello()
BEGIN
SELECT 'Hello from MySQL!';
END //
DELIMITER ;จากนั้นให้ลองเรียกใช้งาน Procedure นี้ด้วยคำสั่ง
SQL
CALL say_hello();DELIMITER //ใช้สำหรับเปลี่ยนตัวแบ่งคำสั่งจาก;เป็น//ชั่วคราว เพราะใน Procedure เราต้องใช้;ภายใน blockCREATE PROCEDURE say_hello()ใช้สำหรับกำหนดชื่อ ProcedureBEGIN ... ENDคือจุดเริ่มต้นและจุดสิ้นสุดของคำสั่ง SQL ที่ต้องการรันSELECT 'Hello from MySQL!'คือตัวอย่างคำสั่ง SQL ที่อยู่ใน ProcedureDELIMITER ;บอกให้ MySQL กลับมาใช้;เป็นตัวจบคำสั่งตามปกติCALL say_hello();คือการเรียกใช้งาน Procedure ที่สร้างไว้
เราสามารถเพิ่ม พารามิเตอร์ เข้าไปใน Procedure ได้ เช่น
SQL
DELIMITER //
CREATE PROCEDURE greet_user(IN user_name VARCHAR(100))
BEGIN
SELECT CONCAT('Hello ', user_name, '!') AS greeting;
END //
DELIMITER ;แล้วเรียกใช้แบบนี้
SQL
CALL greet_user('Somchai');หมายเหตุ
- อย่าลืมใช้
DELIMITERเพื่อไม่ให้ MySQL ตัดคำสั่งผิดกลางทาง - ชื่อ Procedure ต้องไม่ซ้ำกับชื่อที่มีอยู่ในฐานข้อมูลเดียวกัน
- หากใช้โปรแกรมอย่าง phpMyAdmin ควรสลับไปที่ “SQL” และใช้ DELIMITER ให้ถูก