में निर्धारित कार्य मैं एक साधारण सरल अवधारणा से उलझन में आया। Mysql एक समारोह है किmysql
हमेशा एक ही परिणाम पैदा करता है एक ही इनपुट के लिए मेरी समझ में मानकों
तो, जैसे
CREATE FUNCTION foo (val INT) READS SQL DATA
BEGIN
DECLARE retval INT;
SET retval = (SELECT COUNT(*) FROM table_1 WHERE field_1 = val);
RETURN retval;
END;
निर्धारित करने योग्य नहीं हैं कार्यों के रूप में नियतात्मक समारोह को परिभाषित करता है (वहाँ है कोई गारंटी नहीं है कि फ़ंक्शन में 2 कॉल के बीच हटाएं/अपडेट/डालें नहीं होता है)। साथ ही, मैंने कई कार्यों को देखा जो बहुत अधिक करते हैं, यानी प्रश्नों के परिणाम के आधार पर वापसी मूल्य, और DETERMINISTIC
के रूप में घोषित किया गया। ऐसा लगता है कि मैं कुछ बहुत बुनियादी याद कर रहा हूँ।
कोई भी इस मुद्दे को स्पष्ट कर सकता है?
धन्यवाद।
अद्यतन उन लोगों के लिए धन्यवाद जिन्होंने उत्तर दिया (+1); अब तक ऐसा लगता है कि DETERMINISTIC
कीवर्ड का व्यापक दुरुपयोग है। मेरे लिए विश्वास करना अभी भी मुश्किल है कि बहुत से लोग ऐसा करते हैं, इसलिए मैं अन्य उत्तरों के लिए थोड़ा इंतजार करूंगा।
क्या आप "कई फ़ंक्शंस" का उदाहरण बता सकते हैं जिसके बारे में आप बात कर रहे हैं? – Mat
@Mat: उदाहरण के लिए, http://dev.mysql.com/doc/refman/5.0/en/create-procedure.html (उपयोगकर्ता टिप्पणियां अनुभाग में, "फ़ंक्शन डीबी.फनफुलनाम नाम" के लिए खोजें - यह पंक्ति से पढ़ता है एक पास आईडी के लिए डीबी और चयन के परिणाम के आधार पर मूल्य वापसी)। – a1ex07
"... उपयोगकर्ता टिप्पणियां ..." ... कुछ असली mysql फ़ंक्शन आपके मन में है? – Mat