¿Como hacer campo secuencial? (no serial)

From: Jose Urzua <jose(dot)urzua(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: ¿Como hacer campo secuencial? (no serial)
Date: 2005-04-21 16:35:11
Message-ID: b7319de3050421093537c1829a@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola,

(Imagino que puede ser una pregunta tipica, pero no he encontrado
ejemplos o respuestas directas a esto)
Tengo un campo en una tabla llamado "folio_mensual", la idea es que
cada vez que se inserta en esa tabla, ese campo tome el valor del
ultimo folio_mensual insertado más uno:

Tabla:

Columna | Tipo | Modificadores
--------------------------+---------+---------------
codigo | integer | not null
tipo | integer | not null
folio_mensual | integer | not null

La implementacion podria ser directa, haciendo "select
max(folio_mensual) from...." y luego hacer el insert con el campo
obtenido incrementado en 1, pero quiero evitar problemas de
inconsistencias que se podrian dar por "inserts" concurrentes.

Mis preguntas:
¿Cual seria la mejor manera de hacerlo? (idealmente sin bloquear la
tabla completa)
¿Hay alguna explicacion con ejemplo de esto?

Saludos,
--
José Urzúa Reinoso

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message angel Iracheta 2005-04-21 17:34:40 Re: ¿Como hacer campo secuencial? (no serial)
Previous Message Mario Soto Cordones 2005-04-21 15:39:38 Fwd: Problema con ltree