user
è una parola riservata e di solito non è una buona idea usare parole riservate per gli identificatori (tabelle, colonne).
Se insisti nel farlo devi mettere il nome della tabella tra virgolette:
create table "user" (...);
Ma poi tu sempre è necessario utilizzare le virgolette doppie quando si fa 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 tra virgolette possono essere trovati nel manuale:http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS