MySQL चर के दो अलग अलग प्रकार के होते हैं:
स्थानीय चर (जो नहीं हैंद्वारा prefixed) को दृढ़ता से टाइप किया गया है और संग्रहीत प्रोग्राम ब्लॉक में स्कॉप्ड किया गया है जिसमें उन्हें घोषित किया गया है। ध्यान दें कि, के रूप में DECLARE
Syntax के तहत दस्तावेज:
DECLARE
केवल एक BEGIN ... END
यौगिक बयान के अंदर की अनुमति दी है और किसी भी अन्य बयान से पहले, अपने शुरू में होना चाहिए।
user variables (जो @
लगाया जाता है) शिथिल टाइप किया और सत्र के दायरे वाला कर रहे हैं। ध्यान दें कि उन्हें न तो — घोषित करने की आवश्यकता है और न ही उन्हें सीधे उपयोग किया जा सकता है।
इसलिए, यदि आप अपने प्रश्न में, एक संग्रहीत कार्यक्रम को परिभाषित कर रहे हैं और वास्तव में एक "स्थानीय चर" चाहते हैं शब्दों प्रति, आप @
चरित्र ड्रॉप करने की जरूरत है और यह सुनिश्चित करें कि आपके DECLARE
बयान पर है जाएगा अपने कार्यक्रम ब्लॉक की शुरुआत। अन्यथा, "उपयोगकर्ता चर" का उपयोग करने के लिए, DECLARE
कथन ड्रॉप करें।
इसके अलावा, आप या तो आदेश में एक सबक्वेरी के रूप में यह निष्पादित करने के लिए में कोष्ठकों में आपकी क्वेरी के चारों ओर की आवश्यकता होगी:
SELECT COUNT(*) INTO @countTotal FROM nGrams;
मुझे लगता है कि आप शायद [': =' असाइनमेंट ऑपरेटर] (http://dev.mysql.com/doc/en/assignment-operators.html#operator_assign-value) का उपयोग करने के बजाय [' = 'समानता ऑपरेटर] (http://dev.mysql.com/doc/en/comparison-operators.html#operator_equal)? – eggyal
उस महत्वपूर्ण अपडेट के लिए धन्यवाद @eggyal –