2013-07-10 9 views
17

Wersja 8.4.16 (brak wyboru w wersji).psql: nie znaleziono relacji pomimo istniejących relacji

loguję do mojego db następująco:

psql -d JRuser 

Powstały monit:

JRuser=> 

zrobić \ d lub \ dt spodziewając się zobaczyć listę wszystkich relacji w schemacie " tłumaczyć '

Ale mogę wybrać jedną z tabel w schemacie bez żadnych problemów. Na przykład:

select * from translate.storage; --works fine 

mam zapewnione, że uprawnienia dostępu są prawidłowe dla JRuser wykonując \ dn +:

        List of schemas 
     Name  | Owner | Access privileges |   Description 
translate   | JRuser | JRuser=UC/JRuser  | 
           : postgres=UC/JRuser  

Dlaczego nie mogę zobaczyć tabele w schemacie tłumaczyć?

+1

Myślę, że trzeba użyć '\ dt tłumaczenie. * ' –

+0

Z pewnością mogę to zrobić, ale do dzisiaj udało mi się zrobić po prostu \ d lub \ d bez żadnego kwalifikatora. Nie zmieniłem żadnych ustawień konfiguracji, więc jestem zdziwiony. – lostinthebits

Odpowiedz

20

\d w psql pokazuje tylko tabele widoczne, tj. W swoim search_path.

spróbować i zobaczyć:

SHOW search_path; 
SET search_path= translate; 
\d 

Ustawienie sesji został prawdopodobnie zmieniła jakoś. Istnieje wiele sposobów, aby to zrobić:

Podobne później pytanie na dba.SE:

+0

Czy zmienna szukanej zmiennej może zawierać wiele schematów, jeśli użytkownik chce wyświetlać tabele na wszystkich schematach? – lostinthebits

+1

@ lostinthebits: zobacz tutaj: http://www.postgresql.org/docs/8.4/static/sql-set.html#AEN65998 –

+0

Ach, super, dzięki wam obojgu. – lostinthebits