| 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: | Whole Thread | Raw Message | 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 |