Re: Consulta sobre tiggers

From: Juan Pablo Espino <jp(dot)espino(at)gmail(dot)com>
To: Alejandro Romero Parra <aromero(at)etesa(dot)com(dot)mx>
Cc: mmiranda(at)americatel(dot)com(dot)sv, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Consulta sobre tiggers
Date: 2005-05-18 19:31:56
Message-ID: 3e7daec1050518123154402796@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola,

Puedes hacer triggers en C, con SPI_fname obtienes los nombres de los campos.

Saludos

Juan P. Espino

On 5/18/05, Alejandro Romero Parra <aromero(at)etesa(dot)com(dot)mx> wrote:
> Pero entonces debo conocer el nombre de cada campo, esto me cierra en el
> sentido de que si agrego o cambio campos en una tabla tengo que actualizar
> ese trigger, la cosa es hacerlo general y no cerrarlo.
>
> En otros manejadores de BD si se puede conocer el nombre del campo que se
> esta cambiando y de esta forma generalizar el trigger.
>
> Te agradezco tu tiempo.
>
> ----- Original Message -----
> From: <mmiranda(at)americatel(dot)com(dot)sv>
> To: <aromero(at)etesa(dot)com(dot)mx>; <mmiranda(at)americatel(dot)com(dot)sv>
> Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
> Sent: Wednesday, May 18, 2005 1:16 PM
> Subject: RE: [pgsql-es-ayuda] Consulta sobre tiggers
>
> > Alejandro Romero Parra wrote:
> >> Es un excelente ejemplo.
> >>
> >> Sin embargo, la cuestión no es tan simple ya que si un usuario cambia
> >> varios campos de una tabla como distingo el nombre de cada campo y su
> >> correspondiente valor anterior y nuevo, de tal forma que se pueda
> >> llevar un control fidedigno sobre la data?.
> >>
> >> Pendientes...
> >>
> >
> > De acuerdo a
> > http://www.postgresql.org/docs/8.0/interactive/plpgsql-trigger.html
> >
> > Postgres crea un registro NEW y OLD conteniendo los valores antiguos y
> > nuevos de la tabla que se esta modificando/insertando/eliminando, con eso
> > haces tu logica:
> >
> > IF NEW.campo1 = OLD.campo1 THEN
> > ... -- en este caso haces lo que sea pertinente si el
> > ... -- valor de campo1 no cambio, igual haces con campo2 ...etc
> > END IF;
> >
> >
> > IF NEW.campo1 <> OLD.campo1 THEN
> > ... -- en este caso haces lo que sea pertinente si el
> > ... -- valor de campo1 si cambio con respecto al que tenia antes, igual
> > haces con campo2 ...etc
> > END IF;
> >
> >
> > ---
> > Miguel
> >
> > ---------------------------(fin del mensaje)---------------------------
> > TIP 7: no olvides aumentar la configuración del "free space map"
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 4: No hagas 'kill -9' a postmaster
>

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jairo Martín Miguel 2005-05-18 20:13:00 Excel y postgres
Previous Message Alvaro Herrera 2005-05-18 19:19:00 Re: Consulta sobre tiggers