[Pgsql-ayuda] Como veo todos los campos de una Base de datos

David Prieto davidp@sgth.es
Wed, 27 Nov 2002 08:13:33 +0100


>
> Hola a todos!!
> Estoy tratando de hacer un programa que me imprima toda la
> estructura de una
> base de datos que esta en Postgres. Uso PgAdmin pero no encuentro
> por ningun
> lado una opcion que me permita hacerlo , por lo que he decidido
> hacerlo yo
> mismo usando delphi. Mi pregunta es como yo puedo accesar las tablas y
> campos de una tabla en Postgres, eso no se guarda en un catalogo
> o algo asi?
> Si es asi diganme donde?


	A ver si esto te sirve:


select a.attname, t.typname, a.attlen from pg_class c, pg_attribute a,
pg_type t
         where c.relname = 'NOMBRE_DE_LA_TABLA'
         and a.attnum > 0
         and a.attrelid = c.oid
         and a.atttypid = t.oid;


Eso te da todos los campos de una tabla en particular.
Puedes modificar la consulta para que saque todas las tablas (incluidas las
tablas del sistema):

select c.relname, a.attname, t.typname, a.attlen from pg_class c,
pg_attribute a,
pg_type t
         where a.attnum > 0
         and a.attrelid = c.oid
         and a.atttypid = t.oid;


De todos modos, con "pg_dump -s" obtienes una secuencia de comandos SQL para
generar las tablas de la base de datos. Igual con eso te puede bastar.

Un saludo,
  David Prieto.