बुधवार, 25 जून 2014

MySQL तालिका त्रुटि 1064

Original post : http://anothermysqldba.blogspot.com/2014/06/mysql-table-error-1064.html

तो मैं आज एक अजीब स्थिति में आया था. 

मैं PHP $ _COOKIE ['PHPSESSID'] मूल्य का उपयोग कर स्मृति टेबल बनाता है एक प्रणाली है. 

कुछ काम किया है, यह तो तालिका चला जाता है. 

दो नमूने तालिकाओं मेरे उदाहरण के लिए नीचे दिए गए हैं. 


@@VERSION: 5.6.19-log 
CREATE TABLE `f7a7a8d3a7ba75b5eb1712864c9b27eb` ( 
-> `id` int(11) NOT NULL AUTO_INCREMENT, 
-> PRIMARY KEY (`id`) 
-> ) ENGINE=MEMORY; 

CREATE TABLE `8865e52c7e1bea515e7156f240729275` ( 
-> `id` int(11) NOT NULL AUTO_INCREMENT, 
-> PRIMARY KEY (`id`) 
-> ) ENGINE=MEMORY; 


अब कुछ सरल प्रसंस्करण मैं मैं उन्हें गिरा दिया ने कहा कि जैसे मैं फिर रियल टेबल पर होता है. 


DROP TABLE IF EXISTS f7a7a8d3a7ba75b5eb1712864c9b27eb; 
Query OK, 0 rows affected (0.09 sec) 


मैं इस में भाग गया जब तक पर्याप्त सरल .. 


desc 8865e52c7e1bea515e7156f240729275; 
ERROR 1064 (42000): 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 '8865e52c7e1bea515e7156f240729275' at line 1 

DROP TABLE IF EXISTS 8865e52c7e1bea515e7156f240729275; 
ERROR 1064 (42000): 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 '8865e52c7e1bea515e7156f240729275' at line 1 


अब तय वास्तव में बहुत सरल है. लेकिन सवाल यह है कि क्यों एक काम और एक विफल करता है? 

इसे ठीक करने के लिए सिर्फ तालिका नाम backtick. मैं वैसे भी शुरू से ही किया जाना चाहिए जो. उस में पाने के लिए सिर्फ एक अच्छा अभ्यास है. 


DROP TABLE IF EXISTS `8865e52c7e1bea515e7156f240729275`; 
Query OK, 0 rows affected (0.02 sec) 


अब मैं पहले शायद मुद्दा अल्फा न्यूमेरिक नाम था कि सोचा था, लेकिन हम एक संस्करण है कि काम करता देख सकते हैं. फर्क हालांकि तालिका नाम की शुरुआत है.एक एक पूर्णांक है और एक एक अल्फा चरित्र है. तो फिर .. ऐसे बेवकूफ गलतियों से बचने के लिए सर्वोत्तम प्रथाओं और भाव तालिका नामों का पालन करें. 


सभी त्रुटि कोड एक पार्स त्रुटि होने पर .. 


perror 1064 
MySQL error code 1064 (ER_PARSE_ERROR): %s near '%-.80s' at line %d 

कोई टिप्पणी नहीं:

एक टिप्पणी भेजें