web-dev-qa-db-ja.com

Postgresqlまたは任意のデータベースで列名を「グループ」にすることができます

テーブルの列名を指定し、仕様の列名の1つが「グループ」であることを指定するプロジェクトを設計していました。

作成しようとしましたが、Word = "group"の近くで常に構文エラーが発生しました。 SQLのキーワードはグループではなく「グループごと」なので、私は本当に興味があります。その理由は、名前を変更したり、名前"group".で列を作成したりできないためです。

これに関するどんな学習曲線も本当に役に立ちます。

ありがとう!

{編集:使用して取得している構文とエラー}

ALTER TABLE test RENAME COLUMN sum TO group;                                                                                                           
ERROR:  syntax error at or near "group"
LINE 1: ALTER TABLE test RENAME COLUMN sum TO group;
6
AKIWEB

groupis予約語(およびbyは別の予約語)-予約されているのはGROUP BYではありません。予約語であるため、識別子として直接使用することはできません。

予約語または「違法」文字(スペースなど)を含む名前を識別子に使用するには、識別子を引用符で囲む必要があります。

ALTER TABLE test RENAME COLUMN sum TO "group";

引用符で囲まれた識別子を使用する場合は、常に引用符で囲む必要があることに注意してください。また、大文字と小文字が区別されます。 "group""GROUP"とは異なる列名です。

詳細については、マニュアルを参照してください: http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS

一般に、引用が必要な名前を使用することは非常に悪い考えです。引用を必要としない別の名前を思い付くことができれば、それはlotのトラブルを救います。

10