| 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 |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| 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.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Raul Caso | 2006-02-23 16:45:42 | Re: obtener el valor de una secuencia sin hacer antes nextval() |
| Previous Message | Raul Caso | 2006-02-23 16:31:05 | obtener el valor de una secuencia sin hacer antes nextval() |