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

क्या MySQL स्टोर्ड प्रोसीजर निर्माण के समय के वातावरण को संरक्षित करता है?


वास्तव में, MySQL स्टोर्ड प्रोसीजर निर्माण के समय के वातावरण को संरक्षित करता है। इसे निम्न उदाहरण की मदद से समझा जा सकता है जिसमें हम स्ट्रिंग्स को जोड़ने के लिए दो बार्स का उपयोग कर रहे हैं। यह केवल तभी वैध है जब SQL मोड ansi हो। लेकिन यदि हम SQL मोड को नॉन-ansi में बदलते हैं, तो प्रोसीजर अभी भी ऐसे काम करता है जैसे मूल सेटिंग अभी भी सत्य है।

उदाहरण

mysql> Set sql_mode = 'ansi'//
Query OK, 0 rows affected, 1 warning (0.14 sec)

mysql> Create Procedure Con_string()
    ->
    SELECT 'a'||'b'//
Query OK, 0 rows affected (0.12 sec)

mysql> Call Con_string ();
+----------+
| 'a'||'b' |
+----------+
| ab       |
+----------+
1 row in set (0.05 sec)
Query OK, 0 rows affected (0.05 sec)

mysql> Set sql_mode = '';
Query OK, 0 rows affected (0.00 sec)

mysql> Call Con_string();
+----------+
| 'a'||'b' |
+----------+
| ab       |
+----------+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.00 sec)

उपरोक्त परिणाम सेट दर्शाता है कि SQL मोड को नॉन-ansi में बदलने के बाद भी प्रोसीजर Con_string() वही परिणाम दे रहा है जैसे SQL मोड अभी भी ansi है। लेकिन नया प्रोसीजर दो बार्स को स्वीकार नहीं करेगा क्योंकि हमने SQL मोड को नॉन-ansi में बदल दिया है।

mysql> create procedure Con_string1()
    ->
    Select 'a'||'b'//
Query OK, 0 rows affected (0.02 sec)

mysql> Call Con_string1()//
+----------+
| 'a'||'b' |
+----------+
|          0 |
+----------+
1 row in set (0.00 sec)
Query OK, 0 rows affected, 2 warnings (0.00 sec)

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

    MySQL में @ सिंबल: यूजर-डिफाइंड सेशन वेरिएबल MySQL में @ सिंबल का उपयोग यूजर-डिफाइंड सेशन वेरिएबल को दर्शाने के लिए किया जाता है। ये वेरिएबल केवल वर्तमान सेशन के लिए मौजूद होते हैं और स्टोर्ड प्रोसीजर के बीच डेटा पास करने के लिए उपयोगी होते हैं। उदाहरण: स्टोर्ड प्रोसीजर में @ वेरिएबल का उपयोग पहले

  1. - MySQL स्टोर्ड प्रोसीजर में IF...ELSE का उपयोग करके शर्तें सेट करना

    MySQL स्टोर्ड प्रोसीजर में IF...ELSE सशर्त तर्क MySQL स्टोर्ड प्रोसीजर IF...ELSE स्टेटमेंट का उपयोग करके सशर्त तर्क का समर्थन करते हैं, जिससे पैरामीटर मानों के आधार पर डायनामिक निष्पादन पथ सक्षम होते हैं। सिंटैक्स IF yourCondition THEN yourStatement1; ELSE yourStatement2; END IF; पूर्ण उदा

  1. - क्या MySQL में *.* पर दिया गया ग्रांट बाद में बनने वाले डेटाबेस पर भी लागू होता है?

    हाँ, चूंकि यह एक वैश्विक विशेषाधिकार (global privilege) है। आइए पहले एक उपयोगकर्ता बनाते हैं: mysql> CREATE USER Jace@localhost IDENTIFIED BY Jace123; Query OK, 0 rows affected (0.67 sec) यहाँ *.* के साथ वैश्विक विशेषाधिकार देने का क्वेरी है: mysql> GRANT SELECT ON *.* TO Jace@localhost; Quer