2013-05-16 13 views
5

मैं आरक्षित शब्द के लिए MySQL के मैनुअल में शब्दों में इन नहीं मिल सकता है लेकिन जाहिरा तौर पर phpMyAdmin कहते हैं कि वे सुरक्षित कर रहे हैं:MySQL में "टाइप" और "स्थिति" एक आरक्षित शब्द है?

enter image description here

+0

वास्तव में, मैन्युअल में इन शब्दों का कोई संदर्भ नहीं है। लेकिन क्योंकि वे ऐसे शब्द हैं जो "अर्थ" लेते हैं, इसके उपयोग पर प्रतिबंध हैं। मैंने इनके साथ तालिकाओं का निर्माण किया है, अगर यह उन्हें आसानी से अनदेखा करने से नहीं रोकता है। – PiLHA

+0

@PiLHA: बिंदु यह है कि आरक्षित शब्द * unquoted एसक्यूएल पहचानकर्ता के रूप में इस्तेमाल नहीं किया जा सकता है; जबकि ये शब्द * कर सकते हैं *। phpMyAdmin यह कहना गलत है कि ये शब्द आरक्षित हैं। – eggyal

+0

@eggyal जहाँ तक मुझे पता है, SQLServer दोनों में यह MySQL में होता है। शर्तों के उपयोग के लिए अधिकतम प्रतिबंध '' या [] को हल करना और हल करना है। बग या नहीं, उपयोग करें। – PiLHA

उत्तर

11

यह phpMyAdmin में एक बग है तकनीकी रूप से,। libraries/sqlparser.data.php से:

/** 
* words forbidden to be used as column or table name wihtout quotes 
* as seen in http://dev.mysql.com/doc/mysql/en/reserved-words.html 
* 
* @global array MySQL forbidden words 
*/ 
$PMA_SQPdata_forbidden_word = array (

(सूची 'STATUS' और 'TYPE', जो स्पष्ट रूप से संदर्भित मैनुअल पृष्ठ पर नहीं हैं शामिल हैं)।

Bug #948 ने पहचान की कि उस समय से phpMyAdmin ने कुछ कॉलम नामों (STATUS सहित) को पूंजीकृत किया है (गलती से) इस सूची से आरक्षित शब्दों के रूप में पहचाना जा रहा है; उन कीवर्ड को शुरू में एक परिणाम के रूप सूची से removed थे, लेकिन वह प्रतिबद्ध the reasons explained by Alexander Turek के लिए, बाद में reversed था:

आपका ठीक सुंदर-प्रिंटर को खराब करता! यह एक विश्लेषक समस्या है।

पहला और स्थिति इस आरक्षित शब्द सरणी के अंदर रही है क्योंकि वे MySQL कमांड का हिस्सा हैं। स्थिति " में दिखाया गया है स्थिति " और ALTER sytax का पहला भाग।

इसके अलावा, यह बग केवल स्थिति और FIRST से बहुत अधिक शब्दों को प्रभावित करता है। मुझे पता है कि अगर हम उन सब को आरक्षित शब्द सरणी से हटाने क्या होता है ...

अपने परिवर्तन की वजह से

नहीं करना चाहते, दोनों प्रश्नों अच्छी तरह से अब हाइलाइट नहीं होते।

कहना है कि, phpMyAdmin अपनी सुंदर प्रिंटर के रूप में यह सुरक्षित शब्द का पता लगाने के लिए करता है में प्रकाश डाला वाक्य रचना का संचालन करने के शब्दों की एक ही सूची का उपयोग करता है; यह गलत है और आपके द्वारा देखी जाने वाली चेतावनियों की ओर जाता है।

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