【MySQL】ERROR 1064 (42000): You have an error in your SQL syntaxで予約語にハマった件


MySQLでERROR 1064 (42000): You have an error in your SQL syntax;エラーが出ました。

エラーが発生した文は下記です。

INSERT INTO navi.users (hid, pid, condition) VALUES (12, 1, 'OK');

エラーが発生した原因

ERROR 1064は構文に関するエラーです。
文のどこかに間違いがあると発生します。
「,(コンマ)」や「'(シングルクオート)」が多かったりすると発生します。

今回は、文を見てもどうしてもミスが見つかりませんでした。
調べてみると、「condition」はMySQLで予約語として使用されているので、予約語は「`(バッククォート)」で囲まないといけないみたいです。

下記の通りにすると、実行することが出来ました。

INSERT INTO navi.users (hid, pid, `condition`) VALUES (12, 1, 'OK');

MySQLで予約語を使うときに利用する「`(バッククォート)」とは?

「`(バッククォート)」とは、windowsの場合はShift+@を押すことで入力できます。
「'(シングルクオート)」とよく似てるので、間違えられやすいかもしれないです。

バッククォートは基本的に必須ではないですが、予約語をエスケープすることができます。
ERROR 1064エラーが発生して、どうしても構文ミスが見つからない時は、予約語が使用されていないか疑ってみてください。