sql >> Database teknologi >  >> RDS >> PostgreSQL

Indstilling af skema i PostgreSQL JDBC ser ikke ud til at virke

user er en indbygget funktion (og et nøgleord). Så du kan ikke rigtig bruge det som et tabelnavn:

psql (10.4)
Type "help" for help.

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

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

Og fordi det er en funktion, har den ikke en kolonne name .

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

Hvis du kvalificerer tabellen, så er det klart, at du ikke refererer til funktionen, men til tabellen.

Du kan enten altid kvalificere tabelnavnet med skemaet eller bruge dobbelte anførselstegn:select name from "user"; eller bare find et tabelnavn, der ikke kolliderer med indbyggede funktioner.




  1. Brug af Unpivot-trinnet til at lave en tabeltabel ud af en krydstabel

  2. Oprettelse af en ny database og ny forbindelse i Oracle SQL Developer

  3. Hvordan fungerer det at hente data fra SQL Server til SqlDataReader?

  4. Hvad gør DELIMITER // i en trigger?