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

MySQL स्टोर्ड प्रोसीजर से मान कैसे लौटाएं?


आउटपुट पैरामीटर के लिए यूजर-डिफाइंड वेरिएबल (@) का उपयोग करें

MySQL स्टोर्ड प्रोसीजर सीधे मान नहीं लौटाते (फंक्शन के विपरीत)। मान वापस पाने के लिए OUT पैरामीटर के साथ यूजर-डिफाइंड सेशन वेरिएबल (@variable) का उपयोग करें।

सिंटैक्स

-- प्रोसीजर में OUT पैरामीटर
CREATE PROCEDURE proc_name (IN param1 INT, OUT result INT) ...

-- कॉल करते समय @variable पास करें
CALL proc_name(10, @result);

-- परिणाम प्राप्त करें
SELECT @result;

व्यावहारिक उदाहरण

स्टोर्ड प्रोसीजर बनाना

mysql> DELIMITER //
mysql> CREATE PROCEDURE ReturnValueFrom_StoredProcedure (
    IN num1 INT,
    IN num2 INT,
    OUT valido INT
)
BEGIN
    IF (num1 > 4 AND num2 > 5) THEN
        SET valido = (num1 + num2);
    ELSE
        SET valido = (num1 - num2);
    END IF;
    SELECT @valido;  -- प्रोसीजर के अंदर भी देख सकते हैं
END //
mysql> DELIMITER ;

पहला कॉल: योग (शर्त पूरी होती है)

mysql> CALL ReturnValueFrom_StoredProcedure(10, 6, @TotalSum);
+---------+
| @valido |
+---------+
| NULL    |
+---------+

परिणाम प्राप्त करें:

mysql> SELECT @TotalSum;
+-----------+
| @TotalSum |
+-----------+
| 16        |
+-----------+

दूसरा कॉल: अंतर (शर्त पूरी नहीं होती)

mysql> CALL ReturnValueFrom_StoredProcedure(4, 2, @TotalDiff);
+---------+
| @valido |
+---------+
| NULL    |
+---------+

परिणाम प्राप्त करें:

mysql> SELECT @TotalDiff;
+------------+
| @TotalDiff |
+------------+
| 2          |
+------------+

मुख्य बिंदु

  • प्रोसीजर पैरामीटर में OUT कीवर्ड का उपयोग करें।
  • कॉल करते समय @variableName (यूजर-डिफाइंड वेरिएबल) पास करें।
  • कॉल के बाद SELECT @variableName से मान पढ़ें।
  • प्रोसीजर के अंदर SELECT @valido NULL दिखा सकता है क्योंकि आउटपुट पैरामीटर कॉलर के वेरिएबल में सेट होता है।

विकल्प: फंक्शन का उपयोग करें

यदि आप सीधे SELECT में मान चाहते हैं, तो स्टोर्ड फंक्शन (CREATE FUNCTION) बनाएं जो RETURNS प्रकार घोषित करता है और RETURN value करता है।

  1. - MySQL स्टोर्ड प्रोसीजर में गणितीय संक्रियाएं करें?

    आइए एक स्टोर्ड प्रोसीजर बनाते हैं। यहाँ हम amount*quantity की गणना कर रहे हैं यानी गणितीय संक्रियाएं लागू कर रहे हैं: mysql> delimiter // mysql> create procedure calculation_proc(amount int,quantity int) begin select amount,quantity,(amount*quantity) as Total; end // Query OK, 0 rows affe

  1. - MySQL स्टोर्ड प्रोसीजर में टेबल में डेटा कैसे इन्सर्ट करें?

    MySQL स्टोर्ड प्रोसीजर के अंदर INSERT स्टेटमेंट का उपयोग करके टेबल में डेटा इन्सर्ट कर सकते हैं। पैरामीटर लेकर डायनामिक इन्सर्ट करने वाला प्रोसीजर पुन: उपयोग योग्य और सुरक्षित होता है। सिंटैक्स CREATE PROCEDURE procedure_name(IN param1 TYPE, IN param2 TYPE, ...) BEGIN INSERT INTO table_name (co

  1. - MySQL स्टोर्ड प्रोसीजर के वेरिएबल में कॉलम का मान स्टोर करें

    समाधान स्टोर्ड प्रोसीजर में DECLARE से वेरिएबल घोषित करें, SELECT ... INTO से मान असाइन करें। उदाहरण टेबल बनाएं: INSERT INTO DemoTable2034 (StudentName, StudentAge) VALUES (Chris, 23), (David, 21), (Robert, 25), (Mike, 19); स्टोर्ड प्रोसीजर बनाएं DELIMITER ; कॉल करें CALL select_into_variable(