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-16 18:13:43 |
Message-ID: | 20050516181343.GA7314@surnet.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On Mon, May 16, 2005 at 11:34:59AM -0500, Juan Pablo Espino wrote:
> On 5/14/05, Alvaro Herrera <alvherre(at)surnet(dot)cl> wrote:
> >
> > 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.
>
> Gracias Alvaro, si alguien me pudiera aclarar el indexrelid de la
> tabla pg_index, el manual dice que indexrelid es "The OID of the
> pg_class entry for this index", pero no lo veo.
Claro, select oid from pg_class where ...
En realidad, es mucho mejor algo como
select ... from pg_index where indrelid = 'tu-tabla'::regclass;
regclass es un cast especial que transforma un OID o nombre de tabla en
una tabla o su OID, dependiendo de con que lo estes comparando, por eso
funciona esa igualdad. (Hay otros de esos cast especiales.)
--
Alvaro Herrera (<alvherre[a]surnet.cl>)
"La soledad es compañía"
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2005-05-16 18:15:30 | Re: Conexiones desde destinos desconocidos |
Previous Message | Hugo Joel Fuentes Alcantara | 2005-05-16 18:03:35 | Re: pgAdminIII |