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