1. ホーム
  2. sql

[解決済み] Postgres でキーワードのようなカラム名をエスケープする

2022-04-22 11:23:52

質問

Postgres のテーブルのカラムの名前が year では、どのように表示されるのでしょうか。 INSERT クエリで、そのカラムの値を設定できますか?

INSERT INTO table (id, name, year) VALUES ( ... ); の近くでエラーになります。 という単語があります。

解決方法は?

を囲むだけです。 year として解釈されるのを防ぐため、二重引用符で囲んでいます。 キーワード :

INSERT INTO table (id, name, "year") VALUES ( ... );

から ドキュメント :

識別子には、2つ目の種類があります。 引用された識別子。これは、任意の文字列を囲むことによって形成されます。 で囲まれています。区切り識別子は常に 識別子であり、キーワードではありません。ですから、quot;select" は、次のようなものを指すのに使われます。 という名前のカラムやテーブルがありますが、引用符で囲まれていないselectは、select" となります。 キーワードとみなされ、パースエラーになります。 テーブル名やカラム名が想定される場所で使用されます。