ตอนที่ 15 : การสร้าง Function บน MySQL Database (MySQL : Function)
ตอนที่ 15 : การสร้าง Function บน MySQL Database (MySQL : Function) ปกติแล้ว Function บน MySQL มีอยู่หลายตัวให้เรียกใช้งานได้เลย เช่น SUBSTRING , DATE_ADD , MOD และอื่น ๆ แต่สำหรับ Function บน MySQL ที่เราจะพูดถึง Function ที่จะสร้างขึ้นมาใช้งานเอง โดยจะมีรูปแบบเหมือนกับการเขียน Function บนโปรแกรมทั่ว ๆ ไป คือ ฟังก์ชั่นจะเป็นรูปแบบการทำงานที่เสร็จสิ้นภายในตัวเอง พร้อมกับทำการ Return ค่ากลับไปตามชนิดหรือ Data Type ที่ได้ประกาศไว้
โครงสร้างของตาราง customer
Table : customer
Create Function Syntax
CREATE FUNCTION function_name(Parameter1 DataType(size), Parameter2 DataType(size))
RETURNS DataType(size)
BEGIN
RETURN Variable;
END
Example : ตัวอย่างการสร้าง Function แบบง่าย ๆ
DROP FUNCTION IF EXISTS getDiffAmount;
DELIMITER //
CREATE FUNCTION getDiffAmount(pAmt1 DECIMAL(18,2),pAmt2 DECIMAL(18,2))
RETURNS DECIMAL(18,2)
BEGIN
DECLARE diffAmt DECIMAL(18,2);
SET diffAmt = pAmt1 - pAmt2;
RETURN diffAmt;
END //
DELIMITER ;
จากคำสั่งนี้ FUNCTION นี้จะเป็นการรับค่า 2 ค่าแล้วนำมาลบกัน พร้อมกับ Return ค่าที่ได้กลับไป
ทดสอบการทำงาน
SELECT getDiffAmount(2000, 500) As DiffAmt
ผลลัพธ์ที่ได้
นอกจากนี้ยังสามารถใช้ FUNCTION ร่วมกับ SQL Query ได้เช่นเดียวกัน เช่น จากตาราง customer จะมีคอลัมบ์ BUDGETและ USED เราจะสร้างคอลัมบ์ใหม่โดยเป็นค่าที่มาจากฟังก์ชั้นของ getDiffAmount()
SELECT *, getDiffAmount(BUDGET,USED) AS DiffAmount FROM customer
ผลลัพธ์ที่ได้
การสร้าง FUNCTION บน phpMyAdmin
เลือกที่เมนู Routines -> Add Routine
เลือกสร้าง FUNCTION พร้อมกับกำหนดค่าเช่น Parameters และ Return ค่า