PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Nie można po prostu użyć nazwy tabeli PostgreSQL (relacja nie istnieje)

Z tego, co przeczytałem, ten błąd oznacza, że ​​nie odwołujesz się poprawnie do nazwy tabeli. Jednym z powszechnych powodów jest to, że tabela jest zdefiniowana z pisownią mieszaną i próbujesz odpytywać ją za pomocą małych liter.

Innymi słowy, następujący błąd:

CREATE TABLE "SF_Bands" ( ... );

SELECT * FROM sf_bands;  -- ERROR!

Użyj podwójnych cudzysłowów do rozgraniczenia identyfikatorów, dzięki czemu możesz używać określonej pisowni z różnymi literami podczas definiowania tabeli.

SELECT * FROM "SF_Bands";

Odnosząc się do komentarza, możesz dodać schemat do „ścieżki_wyszukiwania”, aby w przypadku odniesienia do nazwy tabeli bez kwalifikowania jej schematu zapytanie pasowało do nazwy tabeli, sprawdzając kolejno każdy schemat. Podobnie jak PATH w powłoce lub include_path w PHP itp. Możesz sprawdzić aktualną ścieżkę wyszukiwania schematu:

SHOW search_path
  "$user",public

Możesz zmienić ścieżkę wyszukiwania schematu:

SET search_path TO showfinder,public;

Zobacz także http://www.postgresql.org/docs/8.3/static/ddl-schemas.html



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL wiersz do kolumn

  2. Jak sprawdzić wersję PostgreSQL

  3. Django prefetch_związane z limitem

  4. Jak zaktualizować wszystkie kolumny za pomocą INSERT ... ON CONFLICT ...?

  5. Jak datuje się matematykę, która ignoruje rok?