DELIMITER
कमांड एक MySQL शेल क्लाइंट बिलिन है, और इसे केवल उस प्रोग्राम (और MySQL Query Browser) द्वारा पहचाना जाता है। DELIMITER
. का उपयोग करना आवश्यक नहीं है यदि आप किसी API के माध्यम से सीधे SQL कथन निष्पादित करते हैं।
DELIMITER
. का उद्देश्य CREATE FUNCTION
. की समाप्ति के बारे में अस्पष्टता से बचने में आपकी सहायता करने के लिए है कथन, जब कथन में स्वयं अर्धविराम वर्ण हो सकते हैं। शेल क्लाइंट में यह महत्वपूर्ण है, जहां डिफ़ॉल्ट रूप से एक अर्धविराम एक SQL कथन को समाप्त करता है। किसी फ़ंक्शन (या ट्रिगर या प्रक्रिया) के मुख्य भाग को सबमिट करने के लिए आपको स्टेटमेंट टर्मिनेटर को किसी अन्य वर्ण में सेट करने की आवश्यकता है।
CREATE FUNCTION trivial_func (radius float)
RETURNS FLOAT
BEGIN
IF radius > 1 THEN
RETURN 0.0; <-- does this semicolon terminate RETURN or CREATE FUNCTION?
ELSE
RETURN 1.0;
END IF;
END
चूंकि एपीआई आम तौर पर आपको एक समय में एक एसक्यूएल स्टेटमेंट जमा करने की अनुमति देता है, इसलिए कोई अस्पष्टता नहीं है - इंटरफ़ेस जानता है कि आपकी फ़ंक्शन परिभाषा के शरीर के अंदर कोई भी अर्धविराम पूरे CREATE FUNCTION
को समाप्त नहीं करता है बयान। इसलिए स्टेटमेंट टर्मिनेटर को DELIMITER
. से बदलने की कोई जरूरत नहीं है ।