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