user
は予約語であり、通常、識別子(テーブル、列)に予約語を使用することはお勧めできません。
そうすることを主張する場合は、テーブル名を二重引用符で囲む必要があります:
create table "user" (...);
しかし、あなたは常に テーブルを参照するときは、二重引用符を使用する必要があります。さらに、テーブル名では大文字と小文字が区別されます。 "user"
"User"
とは異なるテーブル名です 。
多くの手間を省きたい場合は、別の名前を使用してください。 users
、user_account
、...
引用符で囲まれた識別子の詳細については、マニュアルを参照してください:http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS