sql >> Database >  >> RDS >> PostgreSQL

Kan niet zomaar de PostgreSQL-tabelnaam gebruiken (relatie bestaat niet)

Van wat ik heb gelezen, betekent deze fout dat u niet correct naar de tabelnaam verwijst. Een veelvoorkomende reden is dat de tabel is gedefinieerd met een gemengde spelling, en u probeert deze met alleen kleine letters te doorzoeken.

Met andere woorden, het volgende mislukt:

CREATE TABLE "SF_Bands" ( ... );

SELECT * FROM sf_bands;  -- ERROR!

Gebruik dubbele aanhalingstekens om id's af te bakenen, zodat u de specifieke spelling in hoofdletters kunt gebruiken zoals de tabel is gedefinieerd.

SELECT * FROM "SF_Bands";

Wat betreft uw opmerking, u kunt een schema toevoegen aan het "zoekpad", zodat wanneer u naar een tabelnaam verwijst zonder het schema ervan te kwalificeren, de query overeenkomt met die tabelnaam door elk schema in volgorde aan te vinken. Net als PATH in de shell of include_path in PHP, enz. U kunt uw huidige zoekpad voor schema's controleren:

SHOW search_path
  "$user",public

U kunt het zoekpad van uw schema wijzigen:

SET search_path TO showfinder,public;

Zie ook http://www.postgresql.org/docs/8.3/static/ddl-schemas.html



  1. Hoe invoer-uitvoerparameters in SQL Server opgeslagen procedure/functie te declareren?

  2. java.sql.SQLException:- ORA-01000:maximale open cursors overschreden

  3. SELECT DISTINCT is langzamer dan verwacht op mijn tafel in PostgreSQL

  4. Hoe gebruik ik de opbouwfunctie voor expressies in Access 2016?