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

MySQL IF ELSEIF ELSE स्टेटमेंट को स्टोर्ड प्रोसीजर में कैसे उपयोग करें?


MySQL IF ELSEIF ELSE एकाधिक अभिव्यक्तियों के आधार पर स्टेटमेंट्स को निष्पादित करता है। इसका सिंटैक्स निम्नानुसार है:

IF expression THEN
    statements;
ELSEIF elseif-expression THEN
    elseif-statements;
...
ELSE
    else-statements;
END IF;

स्टेटमेंट्स सेमीकोलन से समाप्त होने चाहिए।

IF ELSEIF ELSE स्टेटमेंट के उपयोग को दर्शाने के लिए, हम 'student_info' नामक टेबल के मानों के आधार पर निम्न स्टोर्ड प्रोसीजर बना रहे हैं:

mysql> Select * from student_info;
+------+---------+------------+------------+
| id   | Name    | Address    | Subject    |
+------+---------+------------+------------+
| 101  | YashPal | Amritsar   | History    |
| 105  | Gaurav  | Jaipur     | Literature |
| 125  | Raman   | Shimla     | Computers  |
+------+---------+------------+------------+
3 rows in set (0.00 sec)

निम्न क्वेरी 'coursedetails_IF_ELSEIF' नामक एक प्रोसीजर बनाएगी जिसमें IF ELSEIF ELSE स्टेटमेंट्स होंगे:

mysql> DELIMITER // ;
mysql> CREATE PROCEDURE coursedetails_IF_ELSEIF(IN S_Subject Varchar(20), OUT S_Course varchar(20))
    ->
    BEGIN
    DECLARE Sub Varchar(20);
    SELECT Subject INTO SUB
    FROM Student_info WHERE S_Subject = Subject;
    IF Sub = 'Computers' THEN
    SET S_Course = 'B.Tech(CSE)';
    ELSEIF Sub = 'History' THEN
    SET S_Course = 'Masters in History';
    ELSEIF Sub = 'Literature' THEN
    SET S_Course = 'Masters in English';
    END IF;
    END //
Query OK, 0 rows affected (0.00 sec)

अब, जब हम इस प्रोसीजर को इनवोक करते हैं तो परिणाम देख सकते हैं:

mysql> Delimiter ; //
mysql> CALL coursedetails_IF_ELSEIF('Computers', @S_Course);
Query OK, 1 row affected (0.00 sec)
mysql> Select @S_Course;
+-------------+
| @S_Course   |
+-------------+
| B.Tech(CSE) |
+-------------+
1 row in set (0.00 sec)

mysql> CALL coursedetails_IF_ELSEIF ('Literature', @S_Course);
Query OK, 1 row affected (0.00 sec)
mysql> Select @S_Course;
+--------------------+
| @S_Course          |
+--------------------+
| Masters in English |
+--------------------+
1 row in set (0.00 sec)

  1. - MySQL स्टोर्ड प्रोसीजर के अंदर ROLLBACK ट्रांजैक्शन कैसे करें?

    हम जानते हैं कि ROLLBACK ट्रांजैक्शन शुरू होने के बाद डेटाबेस में किए गए किसी भी परिवर्तन को वापस कर देगा। MySQL स्टोर्ड प्रोसीजर में ROLLBACK करने के लिए हमें EXIT हैंडलर घोषित करना होगा। हम sqlexception या SQL चेतावनियों के लिए हैंडलर का उपयोग कर सकते हैं। इसे उस उदाहरण की मदद से समझा जा सकता है

  1. - एक MySQL स्टोर्ड प्रोसीजर दूसरे MySQL स्टोर्ड प्रोसीजर को अपने अंदर कैसे कॉल कर सकता है?

    यह बिल्कुल संभव है कि एक MySQL स्टोर्ड प्रोसीजर दूसरे MySQL स्टोर्ड प्रोसीजर को अपने अंदर कॉल कर सकता है। इसे दर्शाने के लिए, हम एक उदाहरण ले रहे हैं जिसमें एक स्टोर्ड प्रोसीजर दूसरे स्टोर्ड प्रोसीजर को कॉल करके last_insert_id का पता लगाएगा। उदाहरण BEGIN insert into employee.tbl(name) values (

  1. - MySQL में स्टोर्ड प्रोसीजर को SELECT स्टेटमेंट से कैसे कॉल करें?

    CALL कमांड का उपयोग करें, FROM क्लॉज में नहीं MySQL में स्टोर्ड प्रोसीजर को SELECT ... FROM procedure() सिंटैक्स से कॉल नहीं कर सकते। इसके बजाय CALL कमांड उपयोग करें, फिर अलग से SELECT चलाएं। उदाहरण टेबल बनाएं: ); इन्सर्ट करने वाला प्रोसीजर बनाएं DELIMITER ; प्रोसीजर कॉल करें CALL insert_info