इस मामले में त्रुटि संदेश सबसे महत्वपूर्ण हिस्सा बताता है:
यह व्यवहार MySQL मैनुअल में संग्रहीत कार्यविधियों और कार्यों पर जो प्रलेखित है, उसके अनुरूप है:
आप अपने @Pn . को मान निर्दिष्ट करते हैं उन चुनिंदा बयानों का उपयोग करने वाले चर जो एक परिणाम लौटाते हैं और किसी फ़ंक्शन में इसकी अनुमति नहीं है। आपको इन कथनों को अपने कोड से हटाना होगा। RETURN river एक परिणाम देता है मान , लेकिन परिणाम नहीं सेट ।
मुझे इस बात की भी चिंता है कि आप सत्र चर (चर @variable_name के रूप में परिभाषित चर) का उपयोग करते हैं जो एक कनेक्शन में साझा किए जाते हैं, इसलिए एक कनेक्शन के भीतर एक ही समय में एक ही फ़ंक्शन पर संभावित रूप से एकाधिक कॉल एक दूसरे के साथ हस्तक्षेप कर सकते हैं।
एक संग्रहीत फ़ंक्शन को केवल एक मान को इसके आउटपुट के रूप में return . के साथ वापस करना चाहिए बयान। किसी और चीज को साइड इफेक्ट माना जाता है। यदि आप चाहते हैं कि आपकी MySQL स्क्रिप्ट एकाधिक चरों को पॉप्युलेट करे, तो आपको जरूरी संग्रहीत कार्यविधि का उपयोग करें, आप संग्रहीत फ़ंक्शन का उपयोग नहीं कर सकते।