Stored Procedure (กระบวนงานที่จัดเก็บ)
ใน MySQL สามารถเรียกใช้ Stored Procedure ได้ด้วยคำสั่ง CALL โดย Stored Procedure สามารถคืนค่าได้มากกว่าหนึ่งค่า
Stored Procedure จะคืนค่า 0 โดยค่าเริ่มต้น ไม่สามารถใช้ใน SQL Query ได้โดยตรง และทำงานแบบ Pre-compile
Function (ฟังก์ชัน)
Function สามารถเรียกใช้ได้ภายใน Statement โดยตรง สามารถคืนค่าได้ด้วยคำสั่ง RETURN และคืนค่าได้เพียงค่าเดียวเท่านั้น
Function สามารถคืนค่าได้เป็นค่าเดี่ยวหรือตาราง (Table) สามารถใช้ใน SQL Query ได้ และไม่ได้ทำงานแบบ Pre-compile
สรุปความแตกต่างหลัก
- การเรียกใช้: Procedure ใช้ CALL, Function ใช้ใน Query ได้โดยตรง
- ค่าที่คืน: Procedure หลายค่า (ผ่าน OUT parameters), Function ค่าเดียว
- การใช้ใน SQL: Procedure ไม่ได้, Function ได้
- ประสิทธิภาพ: Procedure ทำงานแบบ Pre-compile, Function ไม่ได้