2016-04-15 5 views
1

Я пытаюсь скопировать данные из одной базы данных в другую. По сути, у меня есть 2 базы данных.Mysql копирует данные из одной базы данных в другую WHERE

  • клиента (который имеет ID, имя, DOB, адрес)
  • Полного клиент (который имеет идентификатор, фото, ПОДПИСЬ) (расширение, чтобы включить имя, DOB, адрес)

Всех клиентов хранятся в базе данных Customer (10 миллионов записей), но только некоторые из них хранятся в базе данных «Полный клиент». (5 миллионов записей).

Я хочу скопировать все записи Клиента в базу данных полного клиента, где в настоящее время нет записи.

Мой псевдо-код ниже для программирования, но мне интересно, если я могу сделать это непосредственно с MySQL

for customer in customers: 
    if customer.ID not in (select ID from fullcustomer) 
     insert customer into fullcustomer 

ответ

1

Вы можете, и вы должны делать это непосредственно с MySQL.

Попробуйте это. Я предположил, что таблицы находятся в одной базе данных - если нет, вы должны префикс имен таблиц с именами базы данных. Я также предположил, что отсутствующие столбцы в таблице full_customer уже есть (вы положили его там).

В основном это означает: «Вставить в таблицу полные_клиенты записи пользователей из клиента таблицы, которых еще нет, используя идентификатор для сравнения».

INSERT INTO full_customer (ID, Name, DOB, Address) (
    SELECT ID, Name, DOB, Address FROM customer c 
    LEFT JOIN full_customer fc ON c.ID = fc.ID 
    WHERE fc.ID IS NULL 
) 

Что вы должны сделать, это сделать проверки разумности beforehands, чтобы проверить, будет ли при условии SQL выбрать клиентов, вы на самом деле хотите вставить в full_customer таблице:

SELECT ID, Name, DOB, Address FROM customer c 
LEFT JOIN full_customer fc ON c.ID = fc.ID 
WHERE fc.ID IS NULL 

Убедитесь, что идентификатор столбец в обеих таблицах индексируется, иначе на выполнение этих утверждений потребуется вечность.

+0

это отлично работало. Спасибо за помощь. Присоединение отлично поработало - нужно было много тестирования, как вы упомянули. – Mark

 Смежные вопросы

  • Нет связанных вопросов^_^