2012-01-26 13 views
5

मैं MySQL कमांड डिलीमीटर को बदलने की कोशिश कर रहा हूं, इसलिए मैं इसमें कई कमांड के साथ एक प्रक्रिया बना सकता हूं। हालांकि, delimiter कमांड MySQL 5.1.47 पर पहचाना नहीं प्रतीत होता है। मैंने इसे MySQL 5.0.91 पर परीक्षण किया, और यह वहां काम करता था।MySQL डेलीमीटर वाक्यविन्यास त्रुटि

DELIMITER //; 
DELIMITER ;// 

मैं दोनों स्थितियों में phpmyadmin से इसे चलाने की कोशिश कर रहा हूं। इसके बजाए 5.0.9 1 का उपयोग करना एक विकल्प नहीं है क्योंकि मुझे ईवेंट (CREATE EVENT) का उपयोग करने की आवश्यकता है।

त्रुटि संदेश:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER //' at line 1 

एक कारण यह काम नहीं कर रहा है, या वहाँ एक ही बात (कई प्रश्नों के साथ एक प्रक्रिया बनाने) को पूरा करने के लिए एक विकल्प है?

+0

मैंने पढ़ा है कि 'DELIMITER' वास्तव में एक MySQL कमांड नहीं है, यह क्लाइंट कमांड है। क्या इसका मतलब यह है कि PHPMyAdmin को MySQL के विरोध में इसका समर्थन करने की आवश्यकता है? – Patrickdev

उत्तर

13

DELIMITER एक MySQL आदेश नहीं है। यह एक आदेश है कि आपके MySQL क्लाइंट को समर्थन करने की आवश्यकता है। मैं PHPMyAdmin 2.8.2.4 चला रहा था, जिसने इसका समर्थन नहीं किया। जब मैं नवीनतम संस्करण में अपग्रेड किया गया, जो वर्तमान में 3.4.9 है, तो यह ठीक काम करता है। आपके MySQL संस्करण के पास DELIMITER से कोई लेना देना नहीं है और क्या यह समर्थित है या नहीं।

2

आप परिसीमित बयान

DELIMITER // 

procedure here etc 

DELIMITER ; 
वास्तव में के रूप में प्रति "Defining Stored Programs" MySQL डॉक्स में

परिसीमित करने के लिए जरूरत नहीं है।

और यदि आप संस्करणों को नियंत्रित कर सकते हैं, तो नवीनतम 5.5.20 है। इसका उपयोग क्यों नहीं करें?

संपादित करें:

त्रुटि संदेश पिछले बयान में कोई त्रुटि इंगित करता है ... इस नहीं किया जा सकता है, तो लगता है बल यह इस प्रकार

; /* <- force previous statement termination */ DELIMITER // 

procedure here etc 

DELIMITER ; 
+0

मैं संस्करणों को नियंत्रित नहीं कर सकता, मैं बस अलग-अलग संस्करणों को चलाने वाले कई वातावरण प्राप्त करता हूं। इसके अलावा, आपके द्वारा पोस्ट किया गया सुझाव काम नहीं करता है। एक ही त्रुटि संदेश प्रकट होता है। – Patrickdev

+0

@Patrickdev: त्रुटि आपके पिछले कथन में होगी जो अनचाहे हो जाएगी ... – gbn

+1

मैंने इस आदेश के साथ इसका परीक्षण किया। कोई पिछला बयान नहीं है। इसके अलावा, यदि कोई वाक्यविन्यास मुद्दा था, तो क्या यह अन्य संस्करणों पर भी त्रुटि नहीं फेंक देगा? – Patrickdev

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