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