परिचय
MySQL स्टोर्ड प्रोसीजर में DECLARE स्टेटमेंट का उपयोग करके स्थानीय वेरिएबल घोषित किए जाते हैं। वेरिएबल घोषणा प्रोसीजर बॉडी के शुरुआत में होनी चाहिए (किसी अन्य स्टेटमेंट से पहले)।
स्टोर्ड प्रोसीजर बनाना
mysql> DELIMITER //
mysql> CREATE PROCEDURE DECLARE_VARIABLE_DEMO(IN value INT)
-> BEGIN
-> DECLARE searchValue INT;
-> SET searchValue = value;
-> IF searchValue = 10 THEN
-> SELECT searchValue + 100;
-> ELSE
-> SELECT searchValue;
-> END IF;
-> END
-> //
Query OK, 0 rows affected (0.17 sec)
mysql> DELIMITER ;
घटक व्याख्या:
DELIMITER //- डिलीमीटर बदलें ताकि ; प्रोसीजर के अंदर उपयोग हो सकेIN value INT- इनपुट पैरामीटरDECLARE searchValue INT;- स्थानीय वेरिएबल घोषणा (प्रकार आवश्यक)SET searchValue = value;- मान असाइन करनाIF ... THEN ... ELSE ... END IF;- शर्तीय तर्कDELIMITER ;- डिलीमीटर बहाल
प्रोसीजर कॉल करना
mysql> CALL DECLARE_VARIABLE_DEMO(10);
परिणाम
+-----------------+
| searchValue+100 |
+-----------------+
| 110 |
+-----------------+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.02 sec)
दूसरे मान के साथ कॉल
mysql> CALL DECLARE_VARIABLE_DEMO(5);
आउटपुट:
+-------------+
| searchValue |
+-------------+
| 5 |
+-------------+
1 row in set (0.00 sec)
DECLARE नियम
- प्रोसीजर/फंक्शन/ट्रिगर बॉडी के शुरुआत में होना चाहिए
DECLARE var_name type [DEFAULT value];सिंटैक्स- स्कोप: केवल उस BEGIN...END ब्लॉक तक
- एक DECLARE में एकाधिक वेरिएबल:
DECLARE a, b INT DEFAULT 0;
वेरिएबल प्रकार
- स्थानीय वेरिएबल:
DECLAREके साथ, प्रोसीजर-स्कोप - उपयोगकर्ता-परिभाषित वेरिएबल:
@var_name, सेशन-स्कोप (प्रोसीजर के बाहर भी) - सिस्टम वेरिएबल:
@@var_name, सर्वर कॉन्फ़िगरेशन
उदाहरण: एकाधिक वेरिएबल
CREATE PROCEDURE calc()
BEGIN
DECLARE x INT DEFAULT 10;
DECLARE y INT DEFAULT 20;
DECLARE z INT;
SET z = x + y;
SELECT z;
END;
DECLARE प्रोसीजरल SQL में वेरिएबल्स का आधार है।