MySQL स्टोर्ड प्रोसीजर बनाते समय DELIMITER का सही उपयोग आवश्यक है क्योंकि प्रोसीजर बॉडी में सेमीकॉलन (;) होते हैं जो डिफ़ॉल्ट स्टेटमेंट टर्मिनेटर हैं।
सही सिंटैक्स
DELIMITER //
CREATE PROCEDURE procedure_name()
BEGIN
IF condition THEN
statement1;
ELSE
statement2;
END IF;
END //
DELIMITER ;
चरण-दर-चरण
DELIMITER //- टर्मिनेटर को // में बदलेंCREATE PROCEDURE ... BEGIN- प्रोसीजर शुरू करें- बॉडी में सामान्य सेमीकॉलन (;) उपयोग करें
END //- नए डिलिमिटर के साथ समाप्त करेंDELIMITER ;- डिलिमिटर को वापस ; पर रीसेट करें
उदाहरण
mysql> DELIMITER //
mysql> CREATE PROCEDURE delimiter_demo()
-> BEGIN
-> IF 1 THEN
-> SELECT "If condition will always true";
-> ELSE
-> SELECT "No";
-> END IF;
-> END //
Query OK, 0 rows affected (0.17 sec)
mysql> DELIMITER ;
कॉल करें
mysql> CALL delimiter_demo();
आउटपुट
+-------------------------------+
| If condition will always true |
+-------------------------------+
| If condition will always true |
+-------------------------------+
सामान्य गलतियां
DELIMITER ;भूलना - बाद के क्वेरी विफल होंगेEND;के बजायEND //उपयोग करना- प्रोसीजर बॉडी के बाहर // उपयोग करना
- नेस्टेड प्रोसीजर में डिलिमिटर नहीं बदलना
बेस्ट प्रैक्टिस
- हमेशा // या $$ जैसे असामान्य डिलिमिटर उपयोग करें
- प्रोसीजर के तुरंत बाद डिलिमिटर रीसेट करें
- स्क्रिप्ट फ़ाइलों में स्पष्ट टिप्पणियां जोड़ें