2010-08-03 8 views
17

Ho 2 tabelle identiche in 2 database diversi che risiedono sullo stesso server. Quale sarebbe il modo migliore per copiare i dati da una tabella all'altra?Selezionare e inserire su più database con MySQL

+0

Perché hai i dati ridondanti come quello, in primo luogo? – NullUserException

+0

@NullUserException So che era un vecchio commento, ma è utile quando si desidera estrarre sottoinsiemi di dati in un database separato per test/debug. –

risposta

30

Usa:

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

Il esiste è semplificato, ma è lasciato fuori se c'è una chiave primaria/auto_increment preoccuparsi di/etc.

+1

cosa succede se db1 e db2 sono su indirizzi IP diversi? –

3

Proprio per elaborare leggermente risposta OMG Ponies', è possibile utilizzare una clausola WHERE, in questo modo:

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