sql >> Databáze >  >> RDS >> PostgreSQL

Nelze jednoduše použít název tabulky PostgreSQL (vztah neexistuje)

Z toho, co jsem četl, tato chyba znamená, že neodkazujete na název tabulky správně. Jedním z běžných důvodů je, že tabulka je definována s pravopisem smíšeným a malými písmeny a vy se v ní pokoušíte dotazovat pouze malými písmeny.

Jinými slovy, následující selže:

CREATE TABLE "SF_Bands" ( ... );

SELECT * FROM sf_bands;  -- ERROR!

K oddělování identifikátorů používejte dvojité uvozovky, abyste mohli používat specifický pravopis s malými a velkými písmeny, jak je definována tabulka.

SELECT * FROM "SF_Bands";

K vašemu komentáři můžete přidat schéma do "search_path", takže když odkazujete na název tabulky, aniž byste upřesnili jeho schéma, dotaz bude odpovídat názvu tabulky tím, že zaškrtnete každé schéma v pořadí. Stejně jako PATH v shellu nebo include_path v PHP atd. Můžete zkontrolovat svou aktuální cestu pro vyhledávání schématu:

SHOW search_path
  "$user",public

Cestu pro vyhledávání schématu můžete změnit:

SET search_path TO showfinder,public;

Viz také http://www.postgresql.org/docs/8.3/static/ddl-schemas.html



  1. Vytvořte si úžasné seznamy sami nebo GitHub jako notebook

  2. Jak interpretujete plán vysvětlení dotazu?

  3. count(*) a count(název_sloupce), jaký je rozdíl?

  4. Datový model 3D šachy Star Trek