ความสำคัญของ DELIMITER ใน Stored Procedure
เมื่อสร้าง Stored Procedure ที่มีหลายคำสั่ง SQL ต้องเปลี่ยน DELIMITER ชั่วคราวเพื่อไม่ให้ MySQL คิดว่าจบคำสั่งที่ semicolon (;) แรก
ขั้นตอนการสร้าง
CREATE TABLE DemoTable2028 (
StudentFirstName VARCHAR(20),
StudentLastName VARCHAR(20)
);
-- เปลี่ยน delimiter เป็น //
DELIMITER //
CREATE PROCEDURE insert_name(
IN fname VARCHAR(20),
IN lname VARCHAR(20)
)
BEGIN
INSERT INTO DemoTable2028 VALUES (fname, lname);
END //
-- คืนค่า delimiter กลับเป็น ;
DELIMITER ;
// เรียกใช้ procedure
CALL insert_name('Chris', 'Brown');
ผลลัพธ์
| StudentFirstName | StudentLastName |
|---|---|
| Chris | Brown |
จุดสำคัญ:
- ใช้
DELIMITER //ก่อน CREATE PROCEDURE - จบ procedure ด้วย
// - คืนค่า
DELIMITER ;หลังสร้างเสร็จ - ภายใน procedure ใช้ semicolon (;) ตามปกติ