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.
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 |