Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL स्टोर्ड प्रोसीजर में DELIMITER का सही उपयोग कैसे करें?

MySQL स्टोर्ड प्रोसीजर बनाते समय DELIMITER का सही उपयोग आवश्यक है क्योंकि प्रोसीजर बॉडी में सेमीकॉलन (;) होते हैं जो डिफ़ॉल्ट स्टेटमेंट टर्मिनेटर हैं।

सही सिंटैक्स

DELIMITER //
CREATE PROCEDURE procedure_name()
BEGIN
    IF condition THEN
        statement1;
    ELSE
        statement2;
    END IF;
END //
DELIMITER ;

चरण-दर-चरण

  1. DELIMITER // - टर्मिनेटर को // में बदलें
  2. CREATE PROCEDURE ... BEGIN - प्रोसीजर शुरू करें
  3. बॉडी में सामान्य सेमीकॉलन (;) उपयोग करें
  4. END // - नए डिलिमिटर के साथ समाप्त करें
  5. 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 // उपयोग करना
  • प्रोसीजर बॉडी के बाहर // उपयोग करना
  • नेस्टेड प्रोसीजर में डिलिमिटर नहीं बदलना

बेस्ट प्रैक्टिस

  • हमेशा // या $$ जैसे असामान्य डिलिमिटर उपयोग करें
  • प्रोसीजर के तुरंत बाद डिलिमिटर रीसेट करें
  • स्क्रिप्ट फ़ाइलों में स्पष्ट टिप्पणियां जोड़ें
  1. - MySQL में WITH ROLLUP का सही उपयोग कैसे करें

    WITH ROLLUP के साथ योग और कुल योग प्राप्त करना WITH ROLLUP का सिंटैक्स: select yourColumnName1, sum(yourColumnName2) from yourTableName group by yourColumnName1 with rollup; पहले टेबल बनाएं: create table DemoTable1622 ( EmployeeCountryName varchar(20), EmployeeSalary int ); Query OK, 0 rows affecte

  1. - MySQL स्टोर्ड प्रोसीजर में शर्तों (IF-ELSE) को सही तरीके से कैसे लागू करें?

    MySQL स्टोर्ड प्रोसीजर में सशर्त तर्क (Conditional Logic) लागू करने के लिए IF-THEN-ELSE स्टेटमेंट का उपयोग किया जाता है। सही सिंटैक्स और डिलिमिटर का ध्यान रखना महत्वपूर्ण है। सही सिंटैक्स DELIMITER // CREATE PROCEDURE procedure_name(IN param_name INT) BEGIN IF condition THEN statement1;

  1. - MySQL स्टोर्ड प्रोसीजर में डिलीमीटर का सही उपयोग और मान डालना

    समस्या स्टोर्ड प्रोसीजर बनाते समय डिफ़ॉल्ट डिलीमीटर (;) क्वेरी को जल्दी समाप्त कर देता है। समाधान DELIMITER बदलें, प्रोसीजर बनाएं, फिर डिलीमीटर बहाल करें। उदाहरण टेबल बनाएं: ); स्टोर्ड प्रोसीजर बनाएं DELIMITER ; प्रोसीजर कॉल करें CALL insert_name(Chris, Brown); परिणाम +------------------+---