From: | Alvaro Herrera <alvherre(at)surnet(dot)cl> |
---|---|
To: | Juan Pablo Espino <jp(dot)espino(at)gmail(dot)com> |
Cc: | "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Funcion que retorne nombre de llave primaria |
Date: | 2005-05-14 20:08:23 |
Message-ID: | 20050514200823.GA7568@surnet.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On Sat, May 14, 2005 at 01:10:51PM -0500, Juan Pablo Espino wrote:
> Hola a todos,
>
> Es posible conocer si una tabla tiene llave primaria y cual es el
> atributo que actua como llave primaria, a partir del nombre de la
> tabla?, por ejemplo algo asi
>
> select dame_la_llave_primaria('tabla');
>
> y que retorne por ejemplo 'id', donde 'id' seria la llave primaria de
> la tabla 'tabla'.
Hola, eso no es posible en general porque las llaves primarias pueden
ser mas de una columna. Por lo tanto es necesario que tu funcion sea
capaz de retornas varios nombres de columna.
Ahora, para hacer tu funcion, necesitas examinar la tabla pg_index,
buscando indisprimary, indkey donde indrelid sea la tabla que buscas.
Luego unes con pg_attribute.
--
Alvaro Herrera (<alvherre[a]surnet.cl>)
"Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end." (2nd Commandment for C programmers)
From | Date | Subject | |
---|---|---|---|
Next Message | Jairo Martín Miguel | 2005-05-14 21:58:22 | interacción entre postgresql y aspx |
Previous Message | Henry Interiano | 2005-05-14 18:27:25 | Importar Datos con e Comando COPY |