usuarios - uso de esquemas en postgresql
Listar todas las tablas en postgresql information_schema (7)
¿Cuál es la mejor manera de enumerar todas las tablas dentro del esquema de información de PostgreSQL?
Para aclarar: estoy trabajando con un DB vacío (no he agregado ninguna de mis propias tablas), pero quiero ver todas las tablas en la estructura del esquema de información.
El COMANDO "/ z" también es una buena forma de listar tablas cuando está dentro de la sesión psql interactiva.
p.ej.
# 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)
Para el esquema privado ''xxx''
en postgresql:
SELECT table_name FROM information_schema.tables
WHERE table_schema = ''xxx'' AND table_type = ''BASE TABLE''
Sin table_type = ''BASE TABLE''
, enumerará tablas y vistas
Para enumerar sus tablas use:
SELECT table_name FROM information_schema.tables WHERE table_schema=''public''
Solo mostrará las tablas que cree.
Puede usar también
select * from pg_tables where schemaname = ''information_schema''
En generall, las tablas pg * le permiten ver todo en el archivo db, no limitado a sus permisos (si tiene acceso a las tablas, por supuesto).
Si quieres una consulta rápida y sucia de una sola línea:
select * from information_schema.tables
Puede ejecutarlo directamente en la herramienta de consulta sin tener que abrir psql.
(Otras publicaciones sugieren consultas más agradables de información_esquíes pero, como novedad, encuentro que esta consulta de una sola línea me ayuda a familiarizarme con la tabla)
Debería poder ejecutar select * from information_schema.tables
para obtener una lista de todas las tablas administradas por Postgres para una base de datos en particular.
También puede agregar un where table_schema = ''information_schema''
para ver solo las tablas en el esquema de información.
/dt information_schema.
desde dentro de psql, debería estar bien.