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

Re: Duda existencial en el uso de Triggers

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: juan <juanramirez(at)cajazacate(dot)com(dot)sv>
Cc: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Duda existencial en el uso de Triggers
Date: 2010-05-18 18:34:34
Message-ID: 1274207494-sup-8230@alvh.no-ip.org (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Excerpts from juan's message of mar may 18 14:20:12 -0400 2010:

> Lo que busco es algo m\xc3\xa1s simple, las secuencias parec\xc3\xadan ser la 
> soluci\xc3\xb3n, puesto que lo que hago es un simple INSERT no utilizo begins 
> ni commit.

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ú.
-- 

In response to

Responses

pgsql-es-ayuda by date

Next:From: juanDate: 2010-05-18 18:45:09
Subject: Re: Duda existencial en el uso de Triggers
Previous:From: juanDate: 2010-05-18 18:20:12
Subject: Re: Duda existencial en el uso de Triggers

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