MySQL でテーブルまたはカラム名として予約語を使用することによる
構文エラー
問題
INSERT ステートメントを実行しようとすると、MySQL は次の理由によりエラーを返します。列名として「key」を使用していますが、これは予約語と競合します。 MySQL は予約語を特別な構文として扱うため、予約語を識別子として使用すると混乱が生じる可能性があります。 「key」のような予約語は、このタイプのエラーを回避するために特別な処理が必要です。
解決策
2 つの解決策が存在します:
1 。識別子の名前変更
推奨されるアプローチは、そもそも予約語を識別子として使用しないことです。これにより、エラーのリスクが排除され、識別子の引用符の規則が異なる可能性がある異なる SQL 言語間での移植性が確保されます。
2.バッククォートの使用
名前の変更が不可能な場合は、問題のある識別子をバッククォートで囲むことができます。バックティックは MySQL に、囲まれた識別子をリテラルとして扱うように指示し、予約語を競合することなく列名またはテーブル名として使用できるようにします。例:
この例では、キー列がバッククォートで囲まれており、構文エラーが解決されています。識別子がより複雑である場合、または特殊文字が含まれている場合は、バッククォート内で適切なエスケープが必要になる可能性があることに注意することが重要です。
以上が「key」などの予約語をテーブル名またはカラム名として使用すると、MySQL が構文エラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。