Re: Script para saber claves foraneas sobre una tabla

From: Javier Chávez B(dot) <jchavezb(at)gmail(dot)com>
To: Julio Cesar Rodriguez Dominguez <jurasec(at)gmail(dot)com>
Cc: Ronald <ronaldriveros(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Script para saber claves foraneas sobre una tabla
Date: 2009-07-09 17:07:37
Message-ID: ded64bba0907091007g7e8c3bc4uff5e436169e8334c@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

2009/7/9 Julio Cesar Rodriguez Dominguez <jurasec(at)gmail(dot)com>

> El 9 de julio de 2009 11:23, Javier Chávez B.<jchavezb(at)gmail(dot)com>
> escribió:
> >
> >
> > 2009/7/9 Ronald <ronaldriveros(at)gmail(dot)com>
> >>
> >> Necesitas obtener las DDL supongo, desde una aplicacion cliente hecha
> por
> >> ti o tan desde un ide de bd?
> >>
> >> El 9 de julio de 2009 11:57, Javier Chávez B. <jchavezb(at)gmail(dot)com>
> >> escribió:
> >>>
> >>> Estimados :
> >>>
> >>> Existe alguna manera de saber mediante un script sobre las tablas de
> >>> sistema que tablas hacen referencia a una tabla, o sea saber donde el
> >>> identificador de una tabla en particular esta siendo utilizada como
> llave
> >>> foranea por otras...
> >>>
> >>> Agradezco cualquier orientacion ..
> >>>
> >>> Slds.
> >>> J.
> >
> > O sea la idea es un select sobre las tablas de sitema donde le pase por
> > parametro un tabla / campo y me retorne que tablas le hacen referencia ,
> me
> > entiendes? no necesito el DDL necesito saber quienes "estan apuntando
> a.. "
> > ya que necesito actualizar unas claves primarias por lo tanto tengo que
> > partir por saber que integridades debo cumplir, me queda el camino largo
> y
> > apestoso de abrir las tablas una por una en PGAdmin y ver las referencias
> > pero creo que debe haber una manera mas automatica de hacerlo .. el tema
> es
> > que no he dado con ello aun ...
> > Slds.
>
> Alvaro ya dio la solución, veamos si te sirve de todos modos:
>
> SELECT (SELECT relname FROM pg_catalog.pg_class c LEFT JOIN
> pg_catalog.pg_namespace n ON n.oid = c.relnamespace WHERE
> c.oid=r.conrelid) as nombre,conname,
> pg_catalog.pg_get_constraintdef(oid, true) as condef from
> pg_catalog.pg_constraint r WHERE r.conrelid in
> ( SELECT c.oid FROM pg_catalog.pg_class c LEFT JOIN
> pg_catalog.pg_namespace n ON n.oid = c.relnamespace WHERE c.relname !~
> 'pg_' and c.relkind = 'r' AND pg_catalog.pg_table_is_visible(c.oid))
> AND r.contype = 'f' ;
>

Una vez mas GRACIAS TOTALES!!! :0)

Alvaro: Aun no uso PG 8.4 :0( pero buen dato, pasa a la wiki de la empresa
:0)

--
Cumprimentos
jchavez
linux User #397972 on http://counter.li.org/

Luis Bunuel <http://www.brainyquote.com/quotes/authors/l/luis_bunuel.html>
- "Age is something that doesn't matter, unless you are a cheese."

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message suso 2009-07-09 17:09:55 Re: error con pg_restore
Previous Message Alvaro Herrera 2009-07-09 17:05:12 Re: error con pg_restore