2012-02-06 12 views
5

जब मैं एक उपयोगकर्ता निर्धारित चरएसईटी उपयोगकर्ता परिभाषित चर mysql वापसी शून्य में?

SET @a =10; 

का उपयोग कर बनाई भी मैं

SET @a := 10; 

ऊपर क्वेरी सफलतापूर्वक क्रियान्वित की जाँच की। चर का उपयोग करते समय यह मुझे 10 के बजाय NULL मान देता है। और जिस तरह से यह समय-समय पर मेरे लिए होता है - - मैं इस क्वेरी

SELECT @a; 
+1

मेरे लिए ठीक काम करता है। आप MySQL का कौन सा संस्करण उपयोग कर रहे हैं? आप प्रश्न कहां निष्पादित कर रहे हैं? – Naltharial

+0

बाद वाले वाक्यविन्यास का उपयोग करना: SET @a: = 10; यह सिर्फ मेरे लिए काम करता है। चर एक टीसीपी कनेक्शन से बंधे हैं, क्या आप एक ही सत्र के दौरान सबकुछ कोशिश कर रहे हैं? – Evert

+1

आपको उसी सत्र में उपयोगकर्ता चर सेट और एक्सेस करना चाहिए। ... एसईटी @ ए = 10 और एसईटी @ ए: = 10 बराबर हैं। – Devart

उत्तर

1

एक ही रास्ता (एक ग्राहक सत्र में) ऐसा हो सकता का उपयोग कर निर्धारित वेरिएबल पहुँचा जा सकता है आप पर एक संक्षिप्त समय समाप्ति से थोड़ा मिलता है ग्राहक कनेक्शन यह इस प्रकार है:

mysql> set @a = 10; 

mysql> [wait for N+1 minutes, where N is the client timeout] 

mysql> select @a; 
+------+ 
| NULL | 
+------+ 
| NULL | 
+------+ 
1 row in set (0.00 sec) 

आपको अपने चर प्रारंभ करना होगा और उन्हें एक प्रासंगिक ग्राहक सत्र के भीतर उपयोग करना होगा। जब सत्र दूर हो जाता है, तो आप अपने सभी चर खो देते हैं।

अन्य स्पष्टीकरण, जैसा टिप्पणियों में दूसरों द्वारा इंगित किया गया है, यह है कि आदेश विभिन्न कनेक्शनों से सर्वर को मार रहे हैं; आपकी समस्या एक टाइमआउट नहीं हो सकती है, लेकिन आप अलग-अलग कनेक्शनों में "सेट ..." और "SELECT ..." आदेशों की उत्पत्ति कर रहे हैं। उपयोगकर्ता चर विभिन्न कनेक्शनों में साझा नहीं किए जाते हैं।

संबंधित मुद्दे