2010-08-03 11 views
17

Ich habe 2 identische Tabellen in 2 verschiedenen Datenbanken, die sich auf demselben Server befinden. Was wäre der beste Weg, um Daten von einer Tabelle in eine andere zu kopieren?Auswählen und Einfügen über mehrere Datenbanken mit MySQL

+0

Warum haben Sie redundante Daten wie die in erster Linie? – NullUserException

+0

@NullUserException Ich weiß, das war ein alter Kommentar, aber es ist nützlich, wenn Sie Teilmengen von Daten in eine separate Datenbank zum Testen/Debuggen extrahieren wollen. –

Antwort

30

Verwendung:

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

Das existiert vereinfacht, aber sie ausgelassen, wenn es ein Primärschlüssel/auto_increment über/etc zu kümmern.

+1

Was ist, wenn db1 und db2 auf verschiedenen IP-Adressen sind? –

3

einfach zu erarbeiten leicht auf OMG Pony- Antwort, können Sie jedeWHERE-Klausel verwenden, etwa so:

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