Risposte:
Dovresti essere in grado di eseguire solo select * from information_schema.tables
per ottenere un elenco di ogni tabella gestita da Postgres per un determinato database.
Puoi anche aggiungere a where table_schema = 'information_schema'
per vedere solo le tabelle nello schema delle informazioni.
Per elencare i tuoi tavoli usa:
SELECT table_name FROM information_schema.tables WHERE table_schema='public'
Elenca solo le tabelle che crei.
\dt information_schema.
dall'interno di psql, dovrebbe andare bene.
Il COMANDO "\ z" è anche un buon modo per elencare le tabelle all'interno della sessione psql interattiva.
per esempio.
# 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)
Per lo schema privato 'xxx'
in postgresql:
SELECT table_name FROM information_schema.tables
WHERE table_schema = 'xxx' AND table_type = 'BASE TABLE'
Senza table_type = 'BASE TABLE'
, elencherai le tabelle e le viste
1.get tutte le tabelle e le viste da information_schema.tables, includendo quelle di information_schema e pg_catalog.
select * from information_schema.tables
2.get tabelle e viste appartengono a determinati schemi
select * from information_schema.tables
where table_schema not in ('information_schema', 'pg_catalog')
3.get solo tabelle (quasi \ dt)
select * from information_schema.tables
where table_schema not in ('information_schema', 'pg_catalog') and
table_type = 'BASE TABLE'
where table_schema not in ('information_schema', 'pg_catalog')
serve esattamente ?
Se vuoi una query one-liner veloce e sporca:
select * from information_schema.tables
Puoi eseguirlo direttamente nello strumento Query senza dover aprire psql.
(Altri post suggeriscono query information_schema più specifiche ma, come nuovo, sto trovando che questa query a una riga mi aiuta a fare i conti con la tabella)