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
Views: Raw Message | Whole Thread | Download mbox | Resend email
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

Browse pgsql-es-ayuda by date

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