sql >> Databasteknik >  >> RDS >> PostgreSQL

Kan inte helt enkelt använda PostgreSQL-tabellnamn (relation finns inte)

Vad jag har läst betyder det här felet att du inte refererar till tabellnamnet korrekt. En vanlig orsak är att tabellen är definierad med en stavning av blandade bokstäver och du försöker fråga den med små bokstäver.

Med andra ord, följande misslyckas:

CREATE TABLE "SF_Bands" ( ... );

SELECT * FROM sf_bands;  -- ERROR!

Använd dubbla citattecken för att avgränsa identifierare så att du kan använda den specifika stavningen med blandade skiftlägen som tabellen är definierad.

SELECT * FROM "SF_Bands";

Om din kommentar kan du lägga till ett schema till "sökväg" så att när du refererar till ett tabellnamn utan att kvalificera dess schema, kommer frågan matcha det tabellnamnet genom att markera varje schema i ordning. Precis som PATH i skalet eller include_path i PHP, etc. Du kan kontrollera din nuvarande schemasökväg:

SHOW search_path
  "$user",public

Du kan ändra sökvägen för ditt schema:

SET search_path TO showfinder,public;

Se även http://www.postgresql.org/docs/8.3/static/ddl-schemas.html



  1. Hur skapar man ett index för element i en array i PostgreSQL?

  2. datagrip Kan inte tillämpa ändringar Denna tabell är skrivskyddad. Cellredigeringsändringar kan inte tillämpas

  3. Vad motsvarar Oracles REF CURSOR i MySQL när du använder JDBC?

  4. Kopiera några av kolumnerna i en csv-fil till en tabell