PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Das Festlegen des Schemas in PostgreSQL JDBC scheint nicht zu funktionieren

user ist eine eingebaute Funktion (und ein Schlüsselwort). Sie können es also nicht wirklich als Tabellennamen verwenden:

psql (10.4)
Type "help" for help.

postgres=# select user;
   user
----------
 postgres
(1 row)

postgres=# select * from user;
   user
----------
 postgres
(1 row)

Und weil es eine Funktion ist, hat sie keine Spalte name .

postgres=# select name from user;
ERROR:  column "name" does not exist
LINE 1: select name from user;
               ^
postgres=#

Wenn Sie die Tabelle qualifizieren, ist klar, dass Sie nicht auf die Funktion, sondern auf die Tabelle verweisen.

Sie können den Tabellennamen entweder immer mit dem Schema qualifizieren oder doppelte Anführungszeichen verwenden:select name from "user"; oder einfach einen Tabellennamen finden, der nicht mit eingebauten Funktionen kollidiert.