user
è una parola riservata e di solito non è una buona idea usare parole riservate per gli identificatori (tabelle, colonne).
Se insisti per farlo devi mettere il nome della tabella tra virgolette doppie:
create table "user" (...);
Ma poi devi sempre usare le virgolette doppie quando fai riferimento alla tabella. Inoltre, il nome della tabella fa distinzione tra maiuscole e minuscole. "user"
è un nome di tabella diverso da "User"
.
Se vuoi risparmiarti un sacco di problemi usa un nome diverso. users
,, user_account
...
Maggiori dettagli sugli identificatori citati possono essere trovati nel manuale: http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS