Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> MySql

MySQL "एक चर या नया छद्म-चर नहीं" संदेश। मेरी संग्रहीत प्रक्रिया में यह त्रुटि क्या है?

<घंटा/>

इस त्रुटि संदेश से छुटकारा पाने के लिए, आइए एक नमूना उदाहरण देखें। लेकिन इससे पहले आइए हम इसे ठीक करने की अवधारणा को देखें।

संग्रहित प्रक्रिया से मूल्य प्राप्त करने के लिए चर का प्रयोग करें। चर @ प्रतीक के साथ उपसर्ग करेगा। वाक्य रचना इस प्रकार है -

कॉल yourStoreedProcedureName(yourParameter1,yourParameter2,.......N,@yourVariableName);

चर के मूल्य को देखने के लिए आपको चयन कथन का उपयोग करने की आवश्यकता है। वाक्य रचना इस प्रकार है -

@yourVariableName चुनें;

उपरोक्त सिंटैक्स को समझने के लिए, आइए हम एक टेबल बनाएं और टेबल में कुछ रिकॉर्ड डालें।

तालिका बनाने की क्वेरी इस प्रकार है -

mysql> टेबल बनाएं StoredProcedureDemo -> ( -> Id int, -> Name varchar(10) -> );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (1.20 सेकंड)

अब इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें। क्वेरी इस प्रकार है -

mysql> StoredProcedureDemo मानों (1, 'जॉन') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.31 सेकंड) mysql> StoredProcedureDemo मानों (2, 'कैरोल') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.19 सेकेंड) )

चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें। क्वेरी इस प्रकार है -

mysql> StoredProcedureDemo से *चुनें;

निम्न आउटपुट है -

<पूर्व>+----------+----------+| आईडी | नाम |+----------+----------+| 1 | जॉन || 2 | कैरल |+------+----------+2 पंक्तियों में सेट (0.00 सेकंड)

यहां संग्रहीत कार्यविधि है जो एक मान लौटाती है। संग्रहीत कार्यविधि बनाने के लिए क्वेरी इस प्रकार है -

mysql> DELIMITER //mysql> क्रिएट प्रोसीजर Update_table(IN Id int, IN Name VARCHAR(20), OUT message VARCHAR(50)) -> BEGIN -> सेट मैसेज ='डेटाबेस अपडेट किया गया है'; -> StoredProcedureDemo में डालें -> मान (आईडी, नाम); -> अंत; ->//क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.67 सेकंड)mysql> DELIMITER;

अब संग्रहीत कार्यविधि को कुछ मानों के साथ कॉल करें -

mysql> Update_table(3,'Larry',@UserMessage) पर कॉल करें;

क्वेरी ठीक, 1 पंक्ति प्रभावित (0.13 सेकंड)

चयन कथन का उपयोग करके चर @UserMessage के मान की जाँच करें। क्वेरी इस प्रकार है -

mysql> @UserMessage चुनें;

निम्न आउटपुट है -

<पूर्व>+-------------------------------------+| @UserMessage |+---------------------------+| डेटाबेस को अपडेट कर दिया गया है |+--------------------------+1 पंक्ति सेट (0.00 सेकंड) में

अब एक बार फिर से टेबल रिकॉर्ड्स की जांच करें। क्वेरी इस प्रकार है -

mysql> StoredProcedureDemo से *चुनें;

निम्न आउटपुट है -

<पूर्व>+----------+----------+| आईडी | नाम |+----------+----------+| 1 | जॉन || 2 | कैरल || 3 | लैरी |+----------+----------+3 पंक्तियों में सेट (0.00 सेकंड)

उपरोक्त नमूना आउटपुट को देखें, आईडी 3 के साथ एक नया रिकॉर्ड डाला गया है। अब आपको त्रुटि संदेश नहीं मिलेगा।


  1. एक कॉलम के मान को एक MySQL संग्रहीत कार्यविधि के चर में संग्रहीत करें

    एक चर घोषित करने के लिए, MySQL संग्रहीत कार्यविधि में DECLARE का उपयोग करें। आइए पहले एक टेबल बनाएं - );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.49 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - DemoTable2034(StudentName,StudentAge) में डालें मान (माइक, 19); क्वेरी ठीक है, 1 पंक्ति प्र

  1. एक MySQL संग्रहीत प्रक्रिया के अंदर डायनामिक SQL क्वेरी लागू करें?

    संग्रहीत कार्यविधि में गतिशील SQL क्वेरी के लिए, PREPARE STATEMENT की अवधारणा का उपयोग करें। आइए पहले एक टेबल बनाएं - mysql> create table DemoTable2033    -> (    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,    -> Name varchar(20)    -> ); Que

  1. इस क्वेरी में MySQL सिंटैक्स त्रुटि क्या है - आरक्षित कीवर्ड के साथ तालिका बनाना?

    मान लें कि हमने ग्रुप्स नाम से एक टेबल बनाने की कोशिश की, जो कि MySQL में एक आरक्षित कीवर्ड है आप ग्रुप्स का उपयोग नहीं कर सकते क्योंकि ग्रुप्स MySQL में एक आरक्षित कीवर्ड है। समूह नाम की तालिका बनाते समय निम्न त्रुटि हुई - );ERROR 1064 (42000):आपके SQL सिंटैक्स में त्रुटि है; लाइन 1 पर समूहों (आई