ホームページ >データベース >mysql チュートリアル >PostgreSQL INSERT ステートメントでキーワードのような列名 (「年」など) をエスケープするにはどうすればよいですか?

PostgreSQL INSERT ステートメントでキーワードのような列名 (「年」など) をエスケープするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-14 09:41:44933ブラウズ

How Can I Escape Keyword-Like Column Names (e.g.,

PostgreSQL のキーワードに似た列名をエスケープします

PostgreSQL でクエリを作成するときに、予約されたキーワードのような列名が見つかるとエラーが発生する可能性があります。たとえば、「年」列です。

質問

「年」列を使用して INSERT クエリを実行しようとすると、次のようなエラーが発生します:

<code class="language-sql">INSERT INTO table (id, name, year) VALUES ( ... );</code>

解決策

この問題を解決するには、「年」列名を二重引用符で囲みます:

<code class="language-sql">INSERT INTO table (id, name, "year") VALUES ( ... );</code>

説明

二重引用符は区切り識別子の定義に使用され、PostgreSQL が囲まれたテキストをキーワードとして解釈するのを防ぎます。これにより、予約語を含む列名をエラーを引き起こすことなく使用できるようになります。

PostgreSQL ドキュメントに記載されているとおり:

"2 番目のタイプの識別子は、区切り文字または引用符で囲まれた識別子です。これは、任意の文字シーケンスを二重引用符 (") で囲むことによって形成されます。区切り識別子は常に識別子であり、キーワードではありません。したがって、「select」は「select」という名前の列またはテーブルを参照するために使用でき、引用符で囲まれていない select はキーワードとして扱われます..."

以上がPostgreSQL INSERT ステートメントでキーワードのような列名 (「年」など) をエスケープするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。