sql >> Databasteknik >  >> RDS >> PostgreSQL

Att ställa in schemat i PostgreSQL JDBC verkar inte fungera

user är en inbyggd funktion (och ett nyckelord). Så du kan inte riktigt använda det som ett tabellnamn:

psql (10.4)
Type "help" for help.

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

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

Och eftersom det är en funktion har den ingen kolumn name .

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

Om du kvalificerar tabellen är det tydligt att du inte refererar till funktionen utan tabellen.

Du kan antingen alltid kvalificera tabellnamnet med schemat eller använda dubbla citattecken:select name from "user"; eller helt enkelt hitta ett tabellnamn som inte kolliderar med inbyggda funktioner.




  1. Hur Acos() fungerar i PostgreSQL

  2. Är det möjligt att utföra korsdatabasfrågor med PostgreSQL?

  3. Hur man formaterar siffror i PostgreSQL

  4. SQLException :Sträng eller binär data skulle trunkeras