Hola Anthony, fijate que al ejecutar el SQL no me devuelve datos

2014-01-25 Anthony Rafael Sotolongo León <[email protected]>

>  Hola Jorge espero que esto te sirva, solo debes sustituir al final de la
> consulta 'nombretutaba' por  nombre de tu tabla:
>
> SELECT pg_constraint.conname as nombrellave ,  pg_class.relname AS tabla,
>
> substring ( pg_get_constraintdef(pg_constraint.oid) from     (position
> ((select a.relname from pg_class a where a.oid=pg_constraint.confrelid) in
> pg_get_constraintdef(pg_constraint.oid))) for position(' ON ' in
> pg_get_constraintdef(pg_constraint.oid))-position ((select a.relname from
> pg_class a where a.oid=pg_constraint.confrelid) in
> pg_get_constraintdef(pg_constraint.oid)) ) as atributoforaneo,
>    (select nspname||'.'||relname from pg_class,  pg_namespace  where
> relnamespace=pg_namespace.oid and pg_class.oid = pg_constraint.confrelid
> and relkind='r' ) as esquemaytablaforanea
> ,
> case confmatchtype
>       when 'u' then 'MATCH simple '
>       when 'f' then 'MATCH full'
>       when 'p' then 'MATCH partial'
>       end as tipo,
>       case confupdtype
>        when 'a' then 'no action '
>       when 'r' then 'restrict'
>       when 'c' then 'cascade'
>       when 'n' then 'set null'
>       else
>       'default'
>
>       end as onupdate ,
>       case confdeltype
>        when 'a' then 'no action '
>       when 'r' then 'restrict'
>       when 'c' then 'cascade'
>       when 'n' then 'set null'
>       else
>       'default'
>
>       end as ondelete
> FROM pg_constraint, pg_class
> WHERE (   (pg_constraint.contype = 'f'::"char") AND
> (pg_constraint.conrelid =
>     pg_class.oid) and relname='nombretutaba')
>
>
>
> saludos
>
>
> El 1/25/2014 11:29 AM, Jorge Alberto Aquino Andrade escribió:
>
>   Lista por favor ayudenme, necesito saber donde obtengo en la base cual
> es el campo de una llave foranea es decir si tengo esto
>
> CONSTRAINT nombre_constraint FOREIGN KEY (atributo1)
>       REFERENCES esquema.tabla2 (atributo2) MATCH SIMPLE
>       ON UPDATE RESTRICT ON DELETE RESTRICT
>
>  como saber que el atributo1 esta reealacionado con el atributo2
> obteniendo nombre de esquemas y tablas respectivos.
>
>  Nota:
>  Hasta el momento he logrado recurperar todos los atributos de las tablas
> foraneas que estan ligadas con la tabla primaria pero yo solo deseo el
> atributo de la tabla foranea que esta ligado con la tabla primaria.
>
>
>
>  ------------------------------
>
> III Escuela Internacional de Invierno en la UCI del 17 al 28 de febrero
> del 2014. Ver www.uci.cu
>
>

Responder a