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

एक MySQL संग्रहीत कार्यविधि इसके अंदर किसी अन्य MySQL संग्रहीत कार्यविधि को कैसे कॉल कर सकती है?

<घंटा/>

यह बहुत संभव है कि एक MySQL संग्रहीत कार्यविधि इसके अंदर किसी अन्य MySQL संग्रहीत कार्यविधि को कॉल कर सकती है। इसे प्रदर्शित करने के लिए, हम एक उदाहरण ले रहे हैं जिसमें एक संग्रहीत कार्यविधि last_insert_id का पता लगाने के लिए किसी अन्य संग्रहीत कार्यविधि को कॉल करेगी।

उदाहरण

mysql> Create table employee.tbl(Id INT NOT NULL AUTO_INCREMENT, Name Varchar(30) NOT NULL, PRIMARY KEY(id))//
Query OK, 0 rows affected (3.87 sec)

mysql> Create Procedure insert1()
   -> BEGIN insert into employee.tbl(name) values ('Ram');
   -> END//
Query OK, 0 rows affected (0.10 sec)

अब, अगली प्रक्रिया में insert2() हम पहली संग्रहित प्रक्रिया यानी insert1() को कॉल करेंगे।

mysql> Create Procedure insert2()
   -> BEGIN
   -> CALL insert1();
   -> Select last_insert_id();
   -> END //
Query OK, 0 rows affected (0.11 sec)
mysql> Delimiter ;

mysql> Call insert2();
+------------------+
| last_insert_id() |
+------------------+
| 1                |
+------------------+
1 row in set (0.36 sec)
Query OK, 0 rows affected (0.37 sec)

उपरोक्त परिणाम सेट से पता चलता है कि जब हम insert1() को कॉल करते हैं तो उसने कर्मचारी.tbl नामक तालिका में पहला मान डाला और जब हम दूसरी संग्रहीत प्रक्रिया में last_insert_id() का चयन करते हैं यानी insert2() तब यह आउटपुट देता है 1.


  1. हम MySQL संग्रहीत प्रक्रिया के अंदर COMMIT लेनदेन कैसे कर सकते हैं?

    जैसा कि हम जानते हैं कि START ट्रांजेक्शन से ट्रांजेक्शन शुरू हो जाएगा और ट्रांजेक्शन शुरू होने के बाद किए गए किसी भी बदलाव के लिए COMMIT का उपयोग किया जाता है। निम्नलिखित उदाहरण में, हमने START लेनदेन के साथ COMMIT के साथ एक संग्रहीत कार्यविधि बनाई है जो एक नया रिकॉर्ड सम्मिलित करेगी और निम्नलिखित

  1. हम MySQL संग्रहीत प्रक्रिया के अंदर START लेनदेन कैसे कर सकते हैं?

    जैसा कि हम जानते हैं कि START ट्रांजेक्शन ट्रांजेक्शन शुरू कर देगा और ऑटो-कमिट मोड को बंद कर देगा। निम्नलिखित उदाहरण में, हमने START लेनदेन के साथ एक संग्रहीत कार्यविधि बनाई है जो तालिका कर्मचारी में एक नया रिकॉर्ड सम्मिलित करेगी। mysql> Select * from employee.tbl; +----+---------+ | Id | Name &n

  1. MySQL में चुनिंदा कथन का उपयोग करके संग्रहीत प्रक्रिया को कैसे कॉल करें?

    MySQL में, FROM क्लॉज में सेलेक्ट फ्रॉम प्रोसेस का उपयोग करना संभव नहीं है। आप कॉल कमांड का उपयोग कर सकते हैं और उसके बाद सेलेक्ट स्टेटमेंट को निष्पादित किया जा सकता है। आइए पहले एक टेबल बनाएं: );क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.66 सेकंड) संग्रहीत कार्यविधि बनाने की क्वेरी निम्नलिखित है: D