Re: Obtener lista de tablas de una bd.

From: Rodrigo Cortés <roco3d(at)gmail(dot)com>
To: Rodrigo Cortés <roco3d(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Obtener lista de tablas de una bd.
Date: 2005-09-16 12:25:56
Message-ID: 979d1d2b0509160525362ea075@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

> > Eso es para una version vieja, 7.2 o anterior. Para ver una version mas
> > moderna, lanza psql -E y ejecuta el comando \d. Te va a mostrar las
> > consultas que ejecuta para desplegar las tablas. Puedes usar eso como
> > punto de partida para construir la consulta que quieres.

Bueno... gracias por el dato... conseguí lo que quería hacer.
Esto es lo que devuelve como consulta cuando le doy el comando \dt :
********* QUERY **********
SELECT n.nspname as "Schema",
c.relname as "Nombre",
CASE c.relkind WHEN 'r' THEN 'tabla' WHEN 'v' THEN 'vista' WHEN 'i' THEN 'Ýndi
ce' WHEN 'S' THEN 'secuencia' WHEN 's' THEN 'especial' END as "Tipo",
u.usename as "Due±o"
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_user u ON u.usesysid = c.relowner
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relkind IN ('r','')
AND n.nspname NOT IN ('pg_catalog', 'pg_toast')
AND pg_catalog.pg_table_is_visible(c.oid)
ORDER BY 1,2;
**************************

tuve que leer bastante para poder entender lo que hace, pero logré
reducirlo a esto:

SELECT n.nspname, c.relname
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relkind IN ('r','')
AND n.nspname NOT IN ('pg_catalog')
AND pg_catalog.pg_table_is_visible(c.oid);

Eso me devuelve la lista de tablas en la base de datos activa. Lo que
no se es si es necesario especificar "pg_catalog".

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jairo Sánchez 2005-09-16 13:35:40 Re: Obtener lista de tablas de una bd.
Previous Message vespadict 2005-09-16 09:18:52 Instalacion en Solaris 8