Re: Desencriptar Registros y pasar a otra

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Gabriel Ferro <gabrielrferro(at)yahoo(dot)com(dot)ar>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Desencriptar Registros y pasar a otra
Date: 2007-02-21 13:47:58
Message-ID: 20070221134758.GK25424@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Gabriel Ferro escribió:
> otra duda hay alguna forma de copiar los valores de una tabla en otra y borrarlas de la de origen? es decir mover los registros en una sola instruccion? ojo que un campo de la tabla destino no es igual al de la tabla origen sino que campotabladestino= decrypt del campotablaorigen

begin;
set transaction isolation level to serializable;
insert into destino select decrypt(foo) from origen where ...;
delete from origen where ...;
commit;

Observa que dado que la transaccion es serializable, el DELETE no vera
tuplas que el INSERT no haya visto, es decir, si otra transaccion puso
mas datos en la tabla "origen" entre medio de ambas instrucciones, no
seran borrados por el delete.

Si te fijas, lo de arriba hace todo lo que tu estas haciendo con
demasiadas lineas de PL/pgSQL, sin necesitas ningun SELECT FOR UPDATE,
ni LOCK TABLE, ni tontear con las comillas, etc etc etc. (Lo unico que
falta especificar es el WHERE, que debe ser el mismo para las dos
sentencias).

--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2007-02-21 14:03:34 Re: Utilitario DBF to PostgreSQL
Previous Message Guillermo Varona Silupú 2007-02-21 13:38:17 Utilitario DBF to PostgreSQL