2010-08-03 27 views
17

Tengo 2 tablas idénticas en 2 bases de datos diferentes que residen en el mismo servidor. ¿Cuál sería la mejor manera de copiar datos de una tabla a otra?Seleccionar e insertar en varias bases de datos con MySQL

+0

¿Por qué tienes los datos redundantes como que en primer lugar? – NullUserException

+0

@NullUserException Sé que era un comentario antiguo, pero es útil para cuando quiera extraer subconjuntos de datos en una base de datos separada para probar/depurar. –

Respuesta

30

Uso:

INSERT INTO db1.table1 
SELECT * 
    FROM db2.table2 t2 
WHERE NOT EXISTS(SELECT NULL 
        FROM db1.table1 t1 
        WHERE t1.col = t2.col) 

El existe se simplifica, pero omitir si hay una llave/AUTO_INCREMENT primaria que preocuparse de/etc.

+1

¿Qué sucede si db1 y db2 están en diferentes direcciones IP? –

3

Sólo para elaborar un poco en respuesta OMG ponis, puede utilizar cualquier cláusula WHERE, así:

INSERT INTO db1.tablename 
SELECT * 
FROM db2.tablename src 
WHERE src.lastlogin >= '2013-10-31 07:00:00' 
Cuestiones relacionadas