テーブルの列名を指定し、仕様の列名の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;
group
is予約語(および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のトラブルを救います。