MySQLで構文は絶対正しいはずなのに、ERROR 1064 (42000)が出た時の話です。
- 解決法
- 予約語をバッククォートで囲む
ERROR 1064 (42000)について
ERROR 1064 (42000)は構文エラーです。 以下のようなエラーメッセージが出力されます。
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 [入力したSQL文の一部] at line 1
解決法としては、基本的にはドキュメントと自分が書いたSQLを見比べて、構文ミスを見つけるだけなんですが...
MySQL 8.0 リファレンスマニュアル(SQLステートメント)
構文ミスが見つからない→予約語が原因かも
エラー発生
以下のSQL文でERROR1064(42000)の構文エラーが発生しました。
mysql> CREATE TABLE order (id INT); 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 'order (id INT)' at line 1
解決法
予約語である「order」をバッククォートで囲むことでエラーが解消されました。
mysql> CREATE TABLE `order` (id INT); Query OK, 0 rows affected (0.01 sec)
「orderは予約語です」って言ってくれればいいのに。。
【参考】