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

MySQL स्टोर्ड प्रोसीजर से एकाधिक स्टोर्ड प्रोसीजर कैसे कॉल करें?

MySQL में स्टोर्ड प्रोसीजर से एकाधिक प्रोसीजर कॉल करना

MySQL में, एक स्टोर्ड प्रोसीजर CALL स्टेटमेंट का उपयोग करके अन्य स्टोर्ड प्रोसीजर को कॉल कर सकता है। यह मॉड्यूलर, पुन: प्रयोज्य डेटाबेस लॉजिक को सक्षम करता है।

सिंटैक्स

DELIMITER //
CREATE PROCEDURE yourProcedureName()
BEGIN
    CALL yourStoredProcedureName1();
    CALL yourStoredProcedureName2();
    -- ... अधिक कॉल
END //
DELIMITER ;

पूर्ण कार्यान्वयन उदाहरण

1. पहला प्रोसीजर बनाएं

mysql> DELIMITER //
mysql> CREATE PROCEDURE hello_message()
    -> BEGIN
    ->   SELECT 'HELLO WORLD !!';
    -> END //
Query OK, 0 rows affected (0.19 sec)

2. दूसरा प्रोसीजर बनाएं

mysql> CREATE PROCEDURE hi_message()
    -> BEGIN
    ->   SELECT 'HI !!!!';
    -> END //
Query OK, 0 rows affected (0.11 sec)

mysql> DELIMITER ;

3. मास्टर प्रोसीजर बनाएं जो दोनों को कॉल करता है

mysql> DELIMITER //
mysql> CREATE PROCEDURE call_all_stored_procedure()
    -> BEGIN
    ->   CALL hello_message();
    ->   CALL hi_message();
    -> END //
Query OK, 0 rows affected (0.26 sec)

mysql> DELIMITER ;

4. मास्टर प्रोसीजर निष्पादित करें

mysql> CALL call_all_stored_procedure();

आउटपुट

+----------------+
| HELLO WORLD !! |
+----------------+
| HELLO WORLD !! |
+----------------+
1 row in set (0.06 sec)

+---------+
| HI !!!! |
+---------+
| HI !!!! |
+---------+
1 row in set (0.06 sec)

Query OK, 0 rows affected (0.08 sec)

मुख्य अवधारणाएं

  • DELIMITER स्टेटमेंट विभाजक को अस्थायी रूप से बदलता है (डिफ़ॉल्ट ; से // तक)
  • BEGIN ... END ब्लॉक कई स्टेटमेंट को समूहित करता है
  • CALL एक स्टोर्ड प्रोसीजर को आमंत्रित करता है
  • प्रोसीजर परिणाम सेट लौटा सकते हैं (जैसा कि यहां दिखाया गया है)

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

  • टकराव से बचने के लिए प्रोसीजर नामों को विशिष्ट रखें
  • जटिल लॉजिक के लिए आउटपुट पैरामीटर (OUT/INOUT) का उपयोग करें
  • लेन-देन प्रबंधन के लिए हैंडलर जोड़ें
  • DEFINER और SQL SECURITY विशेषताओं पर विचार करें
  1. MySQL वर्कबेंच का उपयोग करके स्टोर्ड प्रोसीजर कैसे बनाएं? MySQL वर्कबेंच का उपयोग करके स्टोर्ड प्रोसीजर कैसे बनाएं?

    आइए पहले एक स्टोर्ड प्रोसीजर बनाते हैं। MySQL वर्कबेंच का उपयोग करके स्टोर्ड प्रोसीजर बनाने का क्वेरी: use business; DELIMITER // DROP PROCEDURE IF EXISTS SP_GETMESSAGE; CREATE PROCEDURE SP_GETMESSAGE() BEGIN DECLARE MESSAGE VARCHAR(100); SET MESSAGE=HELLO; SELECT CONCAT(MESSAGE, ,MYSQL!!!!); END //

  1. - MySQL में स्टोर्ड प्रोसीजर के भीतर IF लॉजिक से अन्य स्टोर्ड प्रोसीजर कॉल करें

    MySQL स्टोर्ड प्रोसीजर के अंदर IF ... THEN ... ELSE ... END IF लॉजिक का उपयोग करके शर्त के आधार पर अन्य स्टोर्ड प्रोसीजर कॉल कर सकते हैं। सिंटैक्स CREATE PROCEDURE मुख्य_प्रोसीजर(IN पैरामीटर टाइप) BEGIN IF शर्त THEN CALL प्रोसीजर1(); ELSE CALL प्रोसीजर2(); END IF; END उ

  1. - MySQL स्टोर्ड प्रोसीजर में NULL या खाली वेरिएबल की जांच करें

    NULL या खाली वेरिएबल की जांच के लिए IF कंडीशन का उपयोग करें। आइए एक स्टोर्ड प्रोसीजर बनाते हैं: mysql> delimiter // mysql> create procedure checkingForNullDemo(Name varchar(20)) begin if Name is NULL OR Name= then select Adam Smith; else select Name; end if ; end /