MySQL में @ सिंबल: यूजर-डिफाइंड सेशन वेरिएबल
MySQL में @ सिंबल का उपयोग यूजर-डिफाइंड सेशन वेरिएबल को दर्शाने के लिए किया जाता है। ये वेरिएबल केवल वर्तमान सेशन के लिए मौजूद होते हैं और स्टोर्ड प्रोसीजर के बीच डेटा पास करने के लिए उपयोगी होते हैं।
उदाहरण: स्टोर्ड प्रोसीजर में @ वेरिएबल का उपयोग
पहले एक टेबल बनाएं और डेटा डालें:
CREATE TABLE DemoTable (
StudentName VARCHAR(50)
);
INSERT INTO DemoTable VALUES ('John Smith');
INSERT INTO DemoTable VALUES ('John Doe');
INSERT INTO DemoTable VALUES ('Chris Brown');
स्टोर्ड प्रोसीजर बनाएं जो काउंट को @ वेरिएबल में स्टोर करे
DELIMITER //
CREATE PROCEDURE `Demo_Of_@Symbol`()
BEGIN
SELECT COUNT(*) INTO @numberOfRecords FROM DemoTable;
END //
DELIMITER ;
ध्यान दें: INTO @numberOfRecords — यहां @ सिंबल एक सेशन वेरिएबल बनाता है जो प्रोसीजर समाप्त होने के बाद भी उपलब्ध रहता है।
प्रोसीजर को कॉल करें और वेरिएबल देखें
CALL `Demo_Of_@Symbol`(); SELECT @numberOfRecords;
आउटपुट:
+------------------+ | @numberOfRecords | +------------------+ | 3 | +------------------+
मुख्य बिंदु
@var_name— सेशन वेरिएबल (कनेक्शन-विशिष्ट)DECLARE var_name— लोकल वेरिएबल (केवल प्रोसीजर के अंदर)- सेशन वेरिएबल का स्कोप पूरे सेशन तक होता है
- ये एक कनेक्शन से दूसरे कनेक्शन में शेयर नहीं होते
उपयोग केस: स्टोर्ड प्रोसीजर के परिणाम को बाद की क्वेरी में उपयोग करना, एक प्रोसीजर से दूसरे में डेटा पास करना, या डिबगिंग के लिए इंटरमीडिएट मान स्टोर करना।