2010-08-03 6 views
17

У меня есть две идентичные таблицы в двух разных базах данных, которые находятся на одном сервере. Каким будет лучший способ скопировать данные из таблицы в другую?Выбрать и вставить через несколько баз данных с MySQL

+0

Почему у вас есть избыточные данные, такие как, что в первую очередь? – NullUserException

+0

@NullUserException Я знаю, что это старый комментарий, но он полезен, когда вы хотите извлечь подмножества данных в отдельную базу данных для тестирования/отладки. –

ответ

30

Использование:

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

существует упрощена, но вы оставили, если есть первичный ключ/auto_increment беспокоиться о/и т.д..

+1

Что делать, если db1 и db2 находятся на разных IP-адресах? –

3

Просто немного уточнить ответ OMG ПОНИ, вы можете использовать любой WHERE положение, например, так:

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