निम्नलिखित MySQL उपयोगकर्ता चर के गुण हैं -
केस-सेंसिटिव नहीं
उपयोगकर्ता चर केस-संवेदी नहीं होता है। वे संस्करण MySQL 5 से पहले केस-संवेदी हैं। इसे निम्नलिखित उदाहरण में दर्शाया जा सकता है -
उदाहरण
mysql> SET @A = 'MySQL'; Query OK, 0 rows affected (0.00 sec) mysql> Select @A, @a; +-------+-------+ | @A | @a | +-------+-------+ | MySQL | MySQL | +-------+-------+ 1 row in set (0.00 sec)
क्लाइंट कनेक्शन के लिए विशिष्ट
वास्तव में, उपयोगकर्ता चर क्लाइंट कनेक्शन के लिए विशिष्ट होते हैं जिसके भीतर उनका उपयोग किया जाता है और केवल उस कनेक्शन की अवधि के लिए मौजूद होता है। जब कोई कनेक्शन समाप्त होता है, तो उसके सभी उपयोगकर्ता चर खो जाते हैं।
केवल एक्सप्रेशन के साथ काम करता है
उपयोगकर्ता चर केवल वहीं प्रकट हो सकते हैं जहां अभिव्यक्तियों की अनुमति है। वे प्रकट हो सकते हैं जहां स्थिरांक या शाब्दिक पहचानकर्ता प्रकट हुए हैं। उदाहरण के बाद, जिसमें हम तालिका नाम प्रदान करने के लिए उपयोगकर्ता चर का उपयोग करने का प्रयास कर रहे हैं, इसे स्पष्ट करेंगे।
उदाहरण
mysql> Set @table_name = CONCAT('tbl_','Employee'); Query OK, 0 rows affected (0.00 sec) mysql> Create Table @table_name(Id Int); ERROR 1064 (42000): You have an error in your SQL syntax near '@table_name(Id Int)'
नया मान असाइन किए जाने पर खो गया
जब हम इसे एक नया मान निर्दिष्ट करते हैं तो उपयोगकर्ता चर का मान खो जाएगा। दूसरे शब्दों में, किसी दिए गए उपयोगकर्ता चर का मान तब तक बना रहता है जब तक हम उसे दूसरा मान निर्दिष्ट नहीं करते। निम्नलिखित उदाहरण इसे प्रदर्शित करेगा -
उदाहरण
mysql> SET @name = 'Rahul'; Query OK, 0 rows affected (0.00 sec) mysql> Select @name; +-------+ | @name | +-------+ | Rahul | +-------+ 1 row in set (0.00 sec)
इस समय, वेरिएबल @name का मान 'राहुल' है, लेकिन जब हम मान को 'रमन' में बदलते हैं, तो पिछला मान खो जाएगा।
mysql> SET @name = 'Raman'; Query OK, 0 rows affected (0.00 sec) mysql> Select @name; +-------+ | @name | +-------+ | Raman | +-------+ 1 row in set (0.00 sec)