2010-02-16 26 views

Odpowiedz

153

Powinieneś być w stanie po prostu uruchomić select * from information_schema.tables, aby uzyskać listę wszystkich tabel zarządzanych przez PostgreSQL dla konkretnej bazy danych.

Możesz także dodać where table_schema = 'information_schema', aby zobaczyć tylko tabele w schemacie informacji.

+3

dzięki, ja tylko próbowałem:/dt (gwiazdka). (gwiazdka) jest tak inna? – littleK

+0

Nic nie wiem o rzeczy/dt (gwiazdka). (Gwiazdka) rzecz, przepraszam. Właśnie uruchomiłem kwerendę select w postgres i podano informacje o wszystkich tabelach w nim. Spróbuj uruchomić instrukcję select (na pustym db) i zobaczyć, co zwraca. – RodeoClown

+0

Próba powyższego polecenia zawiera następujące tabele w elemencie information_schema: sql_features, sql_implementation_info, sql_languages, sql_packages, sql_parts, sql_sizing, sql_sizing_profiles ..... Jaka jest różnica między tymi tabelami a tabelami information_schema.tables? – littleK

28
\dt information_schema. 

z ciągu psql, powinno być w porządku.

62

Do wystawiania tablic użyć:

SELECT table_name FROM information_schema.tables WHERE table_schema='public' 

To będzie tylko tabele lista utworzenie.

+0

Co powiesz na tabele, których nie tworzysz, ale masz uprawnienia dostępu do? – huy

+3

To będzie wyświetlać tylko tabele w publicznym schemacie. Możesz tworzyć tabele w innych schematach. –

6

Można użyć także

select * from pg_tables where schemaname = 'information_schema' 

W generall PG * tabele pozwalają zobaczyć wszystko w db, nie ograniczany do swoich uprawnień (jeśli masz dostęp do tabel oczywiście).

3

Dla prywatnego schematu 'xxx' w PostgreSQL:

SELECT table_name FROM information_schema.tables 
WHERE table_schema = 'xxx' AND table_type = 'BASE TABLE' 

Bez table_type = 'BASE TABLE', będzie lista Stoły i poglądów

7

"\ z" polecenia jest również dobrym sposobem na listy tabel, gdy wewnątrz interaktywnej sesji psql.

np.

# psql -d mcdb -U admin -p 5555 
mcdb=# /z 
          Access privileges for database "mcdb" 
Schema |    Name    | Type |   Access privileges 
--------+--------------------------------+----------+--------------------------------------- 
public | activities      | table | 
public | activities_id_seq    | sequence | 
public | activities_users_mapping  | table | 
[..] 
public | v_schedules_2     | view  | {admin=arwdxt/admin,viewuser=r/admin} 
public | v_systems      | view  | 
public | vapp_backups     | table | 
public | vm_client      | table | 
public | vm_datastore     | table | 
public | vmentity_hle_map    | table | 
(148 rows) 
0

Jeśli chcesz kwerendy jeden-liner szybki i brudny:

select * from information_schema.tables

Można go uruchomić bezpośrednio w narzędziu Query bez konieczności otwierania psql.

(Inne posty sugerują ładne bardziej szczegółowych zapytań information_schema ale jako Newby, jestem znalezieniem tej kwerendy jeden-liner pomaga mi uporać się z tabelą)

Powiązane problemy