Re: Trigger, sequence y otras yerbas

From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: concursos(at)mckaffish(dot)com(dot)ar
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Trigger, sequence y otras yerbas
Date: 2005-04-21 01:26:36
Message-ID: 20050421012636.GA13671@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Wed, Apr 20, 2005 at 08:53:48PM -0300, concursos(at)mckaffish(dot)com(dot)ar wrote:
> Mensaje citado por Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>:
> > On Wed, Apr 20, 2005 at 08:32:37PM -0300, Cristian Franceschini wrote:
> >
> > Hola,
> >
> > > Según tengo entendido, cada llamada next_id() de una secuencia actualiza
> > > el valor de dicha secuencia, se inserte o no el registro. Lo que
> > > sospecho es que hace la llamada a next_id() antes qeu se dispare el
> > > desencadenante.
> >
> > Efectivamente. Es un problema eso?

> Y... me gustaría saber si se puede evitar dicho problema.

Precisamente lo que estoy preguntando es cual es el problema. Es
obligatorio que los numeros sean correlativos? Si es asi, vas a tner
que bloquear la tabla para insertar, es decir, vas a perder concurrencia.
Si no, entonces puedes dejar que la secuencia actue normalmente, con lo
cual quedaran agujeros ocasionalmente.

O bien podrias verificar si tal cosa existe antes de insertar en la
tabla.

O bien quizas lo que necesitas es tomar el valor actual de la secuencia
en el desencadenante, en lugar de permitir que se incremente
innecesariamente. Ve la funcion currval().

--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
Este mail se entrega garantizadamente 100% libre de sarcasmo.

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Leo Gamez CCD Desarrollo 2005-04-21 06:24:31
Previous Message concursos 2005-04-20 23:53:48 Re: Trigger, sequence y otras yerbas