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

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


MySQL IF ELSE स्टेटमेंट एक बुनियादी सशर्त निर्माण को लागू करता है जब अभिव्यक्ति गलत मूल्यांकन करती है। इसका सिंटैक्स निम्नानुसार है:

IF expression THEN
    statements;
ELSE
    else-statements;
END IF;

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

MySQL स्टोर्ड प्रोसीजर के भीतर IF 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_IFELSE' नामक एक प्रोसीजर बनाएगी जिसमें IF ELSE स्टेटमेंट्स हैं:

mysql> DELIMITER // ;
mysql> CREATE PROCEDURE coursedetails_IFELSE(IN S_Subject VARCHAR(20), OUT S_Course VARCHAR(50))
    -> 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)';
    -> ELSE
    -> SET S_Course = 'Subject Not in the table';
    -> END IF;
    -> END //
Query OK, 0 rows affected (0.00 sec)

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

mysql> DELIMITER ; //
mysql> CALL coursedetails_IFELSE('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_IFELSE ('History', @S_Course);
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT @S_Course;
+--------------------------------+
| @S_Course                      |
+--------------------------------+
| Subject Not in the table       |
+--------------------------------+
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