user
est un mot réservé et ce n'est généralement pas une bonne idée d'utiliser des mots réservés pour les identifiants (tableaux, colonnes).
Si vous insistez pour le faire, vous devez mettre le nom de la table entre guillemets :
create table "user" (...);
Mais alors vous toujours besoin d'utiliser des guillemets doubles lors du référencement de la table. De plus, le nom de la table est alors sensible à la casse. "user"
est un nom de table différent de "User"
.
Si vous voulez vous épargner beaucoup d'ennuis, utilisez un nom différent. users
, user_account
, ...
Plus de détails sur les identifiants entre guillemets peuvent être trouvés dans le manuel :http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS