Re: como lograr campo consecutivo sin fallar ?

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Roberto Rodríguez Pino <rodpin(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: como lograr campo consecutivo sin fallar ?
Date: 2008-07-17 17:33:41
Message-ID: 20080717173341.GJ3934@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Roberto Rodríguez Pino escribió:

> Yo tengo un problema similar. Se salta el correlativo en caso de que
> haya habido un fallo en la inserción.
> Yo estoy ocupando jdbc. Necesitaba hacer 2 inserciones, donde la
> segunda dependia de la primera... pero si habia algun problema en la
> segunda, la primera no debia llevarse a cabo. Para lo cual aplicaba un
> rollback.
> Pero asi y todo se seguian "quemando" los identificadores de la
> secuencia. Despues revise la cantidad de numeros disponbles y era una
> suma considerable, asi que no le di mucha importancia (en mi problema,
> me indiferente que se salte de un 3 a un 6)... pero igual me quedo la
> duda de como se podria solucionar esto.

Claro, pero para hacer una asignación numérica que "no falle" no puedes
usar una secuencia. Tienes que bloquear la tabla y hacer la inserción
del siguiente número disponible. Esto obviamente tiene menor
rendimiento (solo puede haber un proceso insertando a la vez), pero te
aseguras que no habrá agujeros en la numeración.

Dado que la generación de facturas no es una cosa terriblemente
frecuente, el menor rendimiento no debería ser un problema. Cada
transacción debería tomar menos de un segundo de todas maneras. Un
usuario que tiene que esperar un segundo más, no se da ni cuenta de la
diferencia.

--
Alvaro Herrera http://www.advogato.org/person/alvherre
"Si un desconocido se acerca y te regala un CD de Ubuntu ...
Eso es ... Eau de Tux"

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Luis Fernando Lopez Aguilar 2008-07-17 19:30:34 Re: De informix a Postgresql
Previous Message Roberto Rodríguez Pino 2008-07-17 16:46:46 Re: como lograr campo consecutivo sin fallar ?