あまブログ

ドキドキ......ドキドキ2択クイ〜〜〜〜〜〜〜ズ!!

【MySQL】ERROR 1064 (42000)→構文ミスが見つからない→予約語が原因かも

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は予約語です」って言ってくれればいいのに。。

【参考】