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

Re: La mejor manera de actualizar una tabla con datos externos.

From: Pablo Braulio <brulics(at)gmail(dot)com>
To: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: La mejor manera de actualizar una tabla con datos externos.
Date: 2006-01-30 17:25:31
Message-ID: 200601301825.36237.brulics@gmail.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
El Lunes, 30 de Enero de 2006 17:58, Alvaro Herrera escribió:
> Hum, cual comprobacion?  Simplemente inicia una transaccion en modo
> serializable, vuelca los datos de la tabla que esten en falso, luego haz
> un UPDATE que cambie todo a "verdadero".  Como esta en modo
> serializable, los datos que se hayan insertado mientras estabas en
> proceso no deberian ser tocados, y los datos que se hayan volcado con
> anterioridad no deberian volcarse nuevamente, y por lo tanto por
> definicion no habra ningun conflicto al momento de ejecutar el COPY.
>
> Si eso no funciona, considera botar la otra base de datos y sustituyela
> por una que soporte modo serializable.

A ver si lo he entendido.

Sacamos los datos de la base de datos de origen (la que no es postgres) y lo 
ponemos a un archivo csv. En la tabla destino, tenemos un campo boolean, con 
false por defecto.

Hacemos el COPY e insertamos los datos en la tabla destino. Hacemos un UPDATE 
y ponemos todos los registros como "true".

Mi duda viene, en si se puede comprobar el campo boolean al hacer el COPY.	

Si lo que te referías, al decir que cree un campo boolean, es que lo haga en 
la base de datos de origen, no creo que sea buena idea. Pues no creo que mi 
cliente esté de acuerdo en que toque su base de datos, pues en la mayorïa de 
casos son aplicaciones comerciales. A ser posible, prefiero no tocar lo que 
no controlo.

Se me acaba de ocurrir, que podría usar una tabla temporal para volcar los 
datos con COPY, y luego insertarlo en la tabla destino comparando su 
contenido.

Despúes de esto se borran los datos de la tabla temporal.

¿Que opinas?.
-- 
Saludos.
Pablo
------------
Jabber: bruli(at)myjabber(to)net
Fingerprint: 944D 10DA 4C10 08D1 574D  4B48 3BC1 CEF7 F222 EB1D

In response to

Responses

pgsql-es-ayuda by date

Next:From: Enrique Herrera ReáteguiDate: 2006-01-30 17:41:15
Subject: Saludos
Previous:From: Alvaro HerreraDate: 2006-01-30 16:58:16
Subject: Re: La mejor manera de actualizar una tabla con datos externos.

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