Re: atributo foraneo

From: Jorge Alberto Aquino Andrade <jorge(dot)aquino(dot)andrade(at)gmail(dot)com>
To: Anthony Rafael Sotolongo León <asotolongo(at)uci(dot)cu>
Cc: Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: atributo foraneo
Date: 2014-01-26 17:40:50
Message-ID: CAPM095Nh6JaFihqoZmmvVBF29D6Sd3xj_cGUKNdkf_rcjy6LvA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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

2014-01-25 Anthony Rafael Sotolongo León <asotolongo(at)uci(dot)cu>

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

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jorge Alberto Aquino Andrade 2014-01-26 18:49:32 Re: atributo foraneo
Previous Message Anthony Rafael Sotolongo León 2014-01-25 21:43:29 Re: atributo foraneo