MySQL संग्रहीत फ़ंक्शन मूल रूप से एक विशेष प्रकार का संग्रहीत प्रोग्राम है जो एकल मान देता है। हम मुख्य रूप से सरल सूत्रों या व्यावसायिक नियमों को समाहित करने के लिए MySQL में संग्रहीत कार्यों का उपयोग कर सकते हैं जो SQL कथन या संग्रहीत कार्यक्रमों के बीच पुन:प्रयोज्य हैं। इसके अलावा जब भी किसी एक्सप्रेशन का उपयोग किया जाता है तो SQL स्टेटमेंट में स्टोर किए गए फ़ंक्शन का उपयोग किया जाता है।
संग्रहीत कार्यों की यह विशेषता संग्रहीत कार्यविधियों से भिन्न है। वास्तव में, एक संग्रहीत फ़ंक्शन पैरामीटर संग्रहीत प्रक्रिया के IN पैरामीटर के बराबर होता है क्योंकि फ़ंक्शन यह निर्धारित करने के लिए RETURN कीवर्ड का उपयोग करते हैं कि क्या वापस किया गया है। इसका सिंटैक्स इस प्रकार हो सकता है -
सिंटैक्स
CREATE
[DEFINER = { user | CURRENT_USER }]
FUNCTION sp_name ([func_parameter[,...]])
RETURNS type
[characteristic ...] routine_body
func_parameter:
param_name type
type:
Any valid MySQL data type
characteristic:
COMMENT 'string'
| LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
routine_body:
Valid SQL routine statement फ़ंक्शंस में केवल इनपुट पैरामीटर होते हैं और एक मान लौटाते हैं, इसलिए रिटर्न वैल्यू के डेटा प्रकार को इंगित करने के लिए फ़ंक्शन परिभाषा में एक रिटर्न क्लॉज होना चाहिए। साथ ही, कॉलर को मान वापस करने के लिए फ़ंक्शन बॉडी के भीतर कम से कम एक रिटर्न स्टेटमेंट होना चाहिए।