user
is een ingebouwde functie (en een trefwoord). Je kunt het dus niet echt als tabelnaam gebruiken:
psql (10.4)
Type "help" for help.
postgres=# select user;
user
----------
postgres
(1 row)
postgres=# select * from user;
user
----------
postgres
(1 row)
En omdat het een functie is, heeft het geen kolom name
.
postgres=# select name from user;
ERROR: column "name" does not exist
LINE 1: select name from user;
^
postgres=#
Als u de tabel kwalificeert, is het duidelijk dat u niet naar de functie verwijst, maar naar de tabel.
U kunt de tabelnaam altijd kwalificeren met het schema, of dubbele aanhalingstekens gebruiken:select name from "user";
of zoek gewoon een tabelnaam die niet botst met ingebouwde functies.