2014年6月26日木曜日

MySQLのテーブルエラー1064

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

だから私は今日奇妙な状況に出くわした。 

私は、PHP $ _COOKIE ['PHPSESSID']の値を使用して、メモリテーブルを作成するシステムを持っている。 

いくつかの作業が完了すると、それは、テーブルをドロップします。 

2つのサンプルテーブルは、私の例については、以下である。 


@@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 


今すぐ修正は実際には非常に簡単です。 しかし、問題は、なぜ1仕事と1は失敗しませんか? 

これを修正するには、単にテーブル名をバッククォート。 私はとにかく、最初から行っているはずである。 つまり、入るためにちょうど良い習慣です。 


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


今、私が最初に多分問題は、英数字の名前だと思ったが、我々は1のバージョンが動作していることがわかります。 違いは、しかし、テーブル名の開始である。 ひとつは整数で、1は英字である。 だから、もう一度..このような愚かな間違いを避けるために、ベストプラクティスと引用テーブル名に従ってください。 


すべてのエラー·コードの後に​​構文解析エラーです.. 


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