Alvaro Herrera escribió:
Creo que deberías

1. usar transacciones explícitas (BEGIN / COMMIT)

2. usar un LOCK TABLE para bloquear la tabla contra transacciones
concurrentes (sólo un proceso a la vez debe poder insertar en la tabla)

3. usar un "SELECT max(columna) FROM tabla" para obtener el valor
correlativo correcto, dependiendo del contenido de la tabla.  Esto lo
puedes hacer en un trigger BEFORE.

Si lo haces de esa forma, estarás seguro que siempre funciona bien.  El
paso (2) es crítico, porque impide que otro proceso utilice el mismo
valor que tú.

Gracias Jaime y gracias Álvaro


Debido a las reglas del negocio caigo a cuenta que sí aplica ésta práctica de las transacciones explícitas.


Así lo hare.

--
Cordialmente,
Juan Ramírez
El Salvador
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a