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".
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 |