user
jest słowem zastrzeżonym i zwykle nie jest dobrym pomysłem używanie słów zastrzeżonych do identyfikatorów (tabele, kolumny).
Jeśli nalegasz na to, musisz umieścić nazwę tabeli w podwójnych cudzysłowach:
create table "user" (...);
Ale wtedy zawsze przy odwoływaniu się do tabeli należy używać podwójnych cudzysłowów. Dodatkowo w nazwie tabeli rozróżniana jest wielkość liter. "user"
to inna nazwa tabeli niż "User"
.
Jeśli chcesz oszczędzić sobie wielu kłopotów, użyj innej nazwy. users
, user_account
, ...
Więcej szczegółów na temat cytowanych identyfikatorów można znaleźć w instrukcji:http://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-IDENTIFIERS