MySQL でテーブルまたはカラム名として予約語を使用することによる
問題
MySQL では、特定の単語が特別な意味を持つため、違法になります。バッククォートで囲まれていない限り、テーブル名、列名などの識別子として使用します。この制限は、SELECT、INSERT、DELETE などのキーワードに適用されます。
ソリューション オプション
1.予約語を識別子として使用しない
わかりやすくするために、予約語に一致しないテーブルまたは列には別の名前を使用することを検討してください。これにより、構文エラーのリスクが排除され、SQL 言語間での移植性が確保されます。
2.バッククォートを使用して予約語をエスケープします
予約語を使用する必要がある場合は、バッククォート (`) で囲むことでエスケープできます。これにより、識別子がキーワードではなく通常のテキスト文字列として扱われる必要があることが MySQL に通知されます。
たとえば、質問で述べられているエラーを修正するには、
INSERT INTO user_details (username, location, `key`) VALUES ('Tim', 'Florida', 42);
前後にバッククォートを追加します。キーワードキーを指定すると、クエリは構文的に正しくなります。
以上がMySQL のテーブル名またはカラム名として予約語を使用すると構文エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。