sql >> Database >  >> RDS >> PostgreSQL

Schema instellen in PostgreSQL JDBC lijkt niet te werken

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.




  1. LIKE-query op elementen van platte jsonb-array

  2. pg_restore Alternatieven - PostgreSQL-back-up en automatisch herstel met ClusterControl

  3. Automatische afstemming van Azure SQL Database

  4. Query om alle opgeslagen procedures weer te geven