On Fri, Sep 5, 2014 at 6:36 PM, Jonathan Finlay <jmfinl...@gmail.com> wrote:
> Estimados,
>
> a los años por aquí, me encuentro con un problema:
>
> Necesito concatenar varias bases de datos en una sola y mi problema se dá
> con las primary keys seriales de cada tabla y las relaciones entre sí.
>
> Los que quiero hacer es: BD1 + DB2 = DB3
>
[...]
>
> Por ahora estoy haciendo un script en python para procesar esto pero son 15
> tablas las que hay que concatenar y existen unas 20 relaciones.
>

Si solo son 15 tablas yo lo haría a mano. Me parece exagerado el script en
Python. Bueno, yo lo haría para jugar pero tu ya sabes python...

Lo que yo haría es:

- Cargar la primera base, solo las tabas y sus datos. Sin constraints ni índices
- Busca en la segunda base el mayor id en todas las tablas y redondealo hacia
  arriba, supongamos que fuera 9876 yo me quedaría con 10000.
- Verifica que ese valor sea mayor a todos los id's en la primera base, si no lo
   es usa el id de la primera base redondeado hacia arriba.
- Haz un update en todas las tablas de la primera base sumandole al id
el valor que
  escogiste.
- Carga los datos de la segunda base.
- Ahora ya puedes cargar los constraints e índices.

Te queda de tarea cerrar el hueco que quedará en los id's. Personalmente, yo
lo dejaría ahi

-- 
Jaime Casanova         www.2ndQuadrant.com
Professional PostgreSQL: Soporte 24x7 y capacitación
Phone: +593 4 5107566         Cell: +593 987171157

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Reply via email to