Skip site navigation (1) Skip section navigation (2)

Re: obtener el valor de una secuencia sin hacer antes nextval()

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Raul Caso <feve18(at)gmail(dot)com>
Cc: lista postgresql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: obtener el valor de una secuencia sin hacer antes nextval()
Date: 2006-02-23 16:40:20
Message-ID: 20060223164019.GG4984@surnet.cl (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Raul Caso escribió:
> Hola amigos tengo una pregunta se que se puede obtener el valor de una
> secuencia despues de haber insertado un dato con currval() pero que tal  si
> solo  deseo saber  el valor actual  de  la secuencia  sin haber hecho antes
> ningun  nextval()  se  puede  ,lo que  pasa  es  que  manejo  un  numero
> de  factura  que  se  debe  auntoincrementar  y pues el numero contiene
> letras y numeros asi que concateno las letras con el valor de mi secuencia,
> pero mi problema es saber el valor atual sin antes haber heho un nextval()
> esto para no autoincrementar el valor de la secuencia si al momento de estar
> en la parte de facturacion cancelan el proceso y el numero no deberia
> haberse aumentado

Te recomiendo no usar una secuencia para eso.  Mejor usa una tabla con
el numero y bloqueala antes de generar un nuevo numero usando LOCK TABLE
(o tambien podria ser usando SELECT FOR UPDATE).

La razon es que las secuencias son para ser usadas concurrentemente, y
la propiedad menos deseable de la generacion de numeros de folio (e.g.
facturas) es que sea concurrente.

-- 
Alvaro Herrera                                http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.

In response to

Responses

pgsql-es-ayuda by date

Next:From: Raul CasoDate: 2006-02-23 16:45:42
Subject: Re: obtener el valor de una secuencia sin hacer antes nextval()
Previous:From: Raul CasoDate: 2006-02-23 16:31:05
Subject: obtener el valor de una secuencia sin hacer antes nextval()

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group