Re: Funcion que retorne nombre de llave primaria

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"

In response to

Browse pgsql-es-ayuda by date

  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