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

MySQL डिलीमीटर त्रुटि कब होती है?


कारण

MySQL डिलीमीटर त्रुटि तब होती है जब आप पाइप डिलीमीटर (|) का उपयोग सेमीकोलन (;) के साथ करते हैं और MySQL संस्करण 8.0.12 से कम होता है।

व्याख्या

  • MySQL पाइप (|) को एक डिलीमीटर मानता है और सेमीकोलन (;) को दूसरा।
  • दोनों को एक साथ उपयोग करने से MySQL भ्रमित हो जाता है।
  • MySQL 8.0.12+ में पाइप डिलीमीटर सेमीकोलन के साथ ठीक काम करता है।
  • पुराने संस्करणों में यह डिलीमीटर त्रुटि का कारण बनता है।

काम करने वाला उदाहरण (MySQL 8.0.12+)

mysql> DELIMITER |;
mysql> CREATE PROCEDURE getSumOfTwoNumbers()
BEGIN
    SELECT 2+3 AS TotalValue;
END ;
|;
Query OK, 0 rows affected (0.17 sec)

mysql> DELIMITER ;

प्रोसीजर कॉल करना

mysql> CALL getSumOfTwoNumbers();
+------------+
| TotalValue |
+------------+
| 5          |
+------------+

सही दृष्टिकोण: डिलीमीटर अलग-अलग सेट करें

चरण 1: पाइप डिलीमीटर सेट करें

mysql> DELIMITER |

चरण 2: स्टोर्ड प्रोसीजर बनाएं (पाइप से समाप्त)

mysql> CREATE PROCEDURE Demo()
BEGIN
    SELECT 2*3 AS TotalMultiplication;
END ;
|

चरण 3: वापस सेमीकोलन डिलीमीटर पर जाएं

mysql> DELIMITER ;

सर्वोत्तम अभ्यास

  1. स्टोर्ड प्रोग्राम (प्रोसीजर, फंक्शन, ट्रिगर) बनाने से पहले DELIMITER // या DELIMITER | सेट करें।
  2. प्रोग्राम परिभाषा नए डिलीमीटर (जैसे // या |) से समाप्त करें।
  3. बाद में तुरंत DELIMITER ; पर वापस लौटें।
  4. DELIMITER |; (दोनों एक साथ) लिखने से बचें जब तक आप MySQL 8.0.12+ पर न हों।

नोट

सेमीकोलन (;) MySQL का डिफ़ॉल्ट स्टेटमेंट टर्मिनेटर है। इसे केवल डिलीमीटर बदलने के बाद ही बदलें, और काम पूरा होने पर तुरंत बहाल करें।

  1. MySQL एरर #1046 - कोई डेटाबेस चुना नहीं गया MySQL एरर #1046 - कोई डेटाबेस चुना नहीं गया

    एरर #1046 तब आता है जब आप टेबल बनाते समय डेटाबेस सेलेक्ट करना भूल जाते हैं। समस्या ); ERROR 1046 (3D000): No database selected समाधान उपलब्ध डेटाबेस देखें: SHOW DATABASES; डेटाबेस चुनें: USE business; Database changed अब टेबल बनाएं — एरर नहीं आएगा: ); Query OK, 0 rows affected (0.50 sec) नो

  1. MySQL डेटाबेस बनने पर कहां सेव होता है? MySQL डेटाबेस बनने पर कहां सेव होता है?

    यदि आप डेटाबेस लोकेशन जानना चाहते हैं यानी MySQL में यह कहां बनता है, तो आप सिस्टम वेरिएबल @@datadir का उपयोग कर सकते हैं। सिंटैक्स निम्नलिखित है: SELECT @@datadir; निम्नलिखित क्वेरी है: SELECT @@datadir; यहां आउटपुट है। उपरोक्त क्वेरी लोकेशन लौटाती है: +-------------------------------------------

  1. - mysqld: MySQL सर्वर (मुख्य डेमॉन)

    mysqld (MySQL Server) एकल मल्टीथ्रेडेड प्रोग्राम है जो MySQL इंस्टॉलेशन में अधिकांश कार्य करता है। यह अतिरिक्त प्रोसेस स्पॉन नहीं करता। कार्य MySQL डेटा डायरेक्टरी (डेटाबेस, टेबल) तक पहुंच प्रबंधित करता है। डेटा डायरेक्टरी लॉग फ़ाइलों और स्टेटस फ़ाइलों का डिफ़ॉल्ट स्थान भी है। नेटवर्क कनेक्शन सुनत