MySQL เริ่มต้นใช้งาน Stored Procedure

หลังจากที่เราได้รู้จักกับ 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 เราต้องใช้ ; ภายใน block
  • CREATE PROCEDURE say_hello() ใช้สำหรับกำหนดชื่อ Procedure
  • BEGIN ... END คือจุดเริ่มต้นและจุดสิ้นสุดของคำสั่ง SQL ที่ต้องการรัน
  • SELECT 'Hello from MySQL!' คือตัวอย่างคำสั่ง SQL ที่อยู่ใน Procedure
  • DELIMITER ; บอกให้ 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 ให้ถูก
แชร์เรื่องนี้