[Pgsql-ayuda] Transacciones

Alvaro Herrera alvherre@dcc.uchile.cl
Mon, 22 Sep 2003 17:18:35 -0400


On Mon, Sep 22, 2003 at 09:05:29PM +0000, Guillermo Schulman wrote:

> Existe algo así como "snapshot transactions" en postgres?
> Mi idea es "mover" una gran cantidad de registros de una tabla a otra (con 
> los mismos campos). Para esto primero hago el insert en la tabla destino y 
> luego el delete en la tabla origen. Quiero asegurarme de que el conjunto de 
> registros borrados del origen sea exactamente el mismo que el que se 
> insertaron en la tabla destino. Mi preocupación es por los eventuales 
> insert que se pudieran hacer en la tabla de origen después del insert pero 
> antes del delete.
> Obviamente utilizo transacciones  (begin, commit) pero esto no me asegura 
> lo que estoy necesitando.

Quien dice?  Hiciste un experimento?

(De donde salio el concepto "snapshot transactions"?  FYI, todas las
transacciones tienen un 'snapshot' definido, el cual afecta la
visibilidad de tuplas.  En este sentido todas las transacciones son
'snapshot transactions' en Postgres.  Nota la diferencia entre
transacciones SERIALIZABLE y transacciones READ COMMITTED -- el snapshot
varia en el segundo caso entre consulta y consulta, mientras que se
mantiene constante en el primer caso)

-- 
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"Now I have my system running, not a byte was off the shelf;
It rarely breaks and when it does I fix the code myself.
It's stable, clean and elegant, and lightning fast as well,
And it doesn't cost a nickel, so Bill Gates can go to hell."