एसक्यूएल सिंटेक्स त्रुटि जब MYSQL में एक संग्रहीत प्रक्रिया बनाने

वोट
6

मैं एक मुश्किल समय था जब mysql में एक संग्रहीत प्रक्रिया बनाने का प्रयास करते समय एक त्रुटि का पता लगाने की है।

अगर मैं स्वतंत्र रूप से प्रक्रिया के हर एक लाइन चलाने के लिए, सब कुछ ठीक काम करता है।

CREATE PROCEDURE cms_proc_add_child (param_parent_id INT, param_name CHAR(255), param_content_type CHAR(255))
BEGIN
    SELECT @child_left := rgt FROM cms_tree WHERE id = param_parent_id;
    UPDATE cms_tree SET rgt = rgt+2 WHERE rgt >= @child_left;
    UPDATE cms_tree SET lft = lft+2 WHERE lft >= @child_left;
    INSERT IGNORE  INTO cms_tree (name, lft, rgt, content_type) VALUES (param_name, @child_left, @child_left+1, param_content_type);
END

मैं निम्नलिखित (सहायक) त्रुटि मिलती है: त्रुटि 1064 (42000): आप अपने एसक्यूएल वाक्य रचना में एक त्रुटि है, मैनुअल है कि सही वाक्य रचना के पास '' लाइन 3 पर उपयोग करने के लिए अपने सर्वर संस्करण के लिए संगत की जाँच ... मैं बस जहां डिबगिंग शुरू करने के लिए पता नहीं है, के रूप में इन पंक्तियों में से हर एक सही है।

कोई सुझाव?

12/03/2009 को 16:14
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


3 जवाब

वोट
20

लाइन 3 पहले होता है के रूप में ;शायद आप अपने सीमांकक के साथ एक समस्या है।

देख http://dev.mysql.com/doc/refman/5.0/en/stored-programs-defining.html

mysql> सीमांकक //

mysql> बनाएं प्रक्रिया dorepeat (p1 INT)
    -> शुरू
    -> सेट @x = 0;
    -> दोहराएं सेट @x = @x + 1; जब तक @x> p1 अंत दोहराएं;
    -> अंत
    -> //
क्वेरी ठीक है, 0 पंक्तियों प्रभावित (0.00 सेकंड)

mysql> सीमांकक;
12/03/2009 को 17:12
का स्रोत उपयोगकर्ता

वोट
1

धन्यवाद, 3 लाइन पर निकट '' मेरी समस्या और सीमांकक बयान यह तय हो गया था! मैं हमेशा चीजों को समझ बनाने के लिए करना चाहते हैं और ऐसा करता है। के रूप में '' को इंगित करता है यह प्रक्रिया के अंत में है, लेकिन कोई अंत बयान इस प्रकार सिंटेक्स त्रुटि मिला था। और मैं सोचा है कि मैं सीमांकक कथन का उपयोग बहुत से लोगों को देखकर रखा। मुझे रौशनी दिख रही है!

02/04/2009 को 02:01
का स्रोत उपयोगकर्ता

वोट
1

आप अपने @child_left चर कभी नहीं की घोषणा।

12/03/2009 को 16:18
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more