2013-12-03 3 views
1

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

Я могу экспортировать данные второй таблицы как csv, php array или sql файл.

Thanks

ответ

1

Существует много способов сделать это.

Самый простой, вероятно, этого one:

INSERT IGNORE 
    INTO table_1 
SELECT * 
    FROM table_2 
    ; 

, который позволяет эти строки в table_1 вытеснять тех, кто table_2 что имеют соответствующий первичный ключ, в то же время вставки строки с новыми первичных ключей.

В качестве альтернативы вы можете использовать подзапрос, чтобы узнать строки, не разделяемые обеими таблицами, и вставить их. Если у вас есть лот записей, вы можете захотеть использовать временную таблицу для ускорения процесса.

+0

Да. У меня может быть большое количество строк. временная таблица для идентификации не разделяемых строк? этот метод может применяться для таблиц в двух разных базах данных? – Miuranga

+1

Я бы сказал, это зависит от ваших прав. Если у вашего пользователя есть доступ к обеим базам данных, вы должны это сделать. Если нет, просто экспортируйте одну таблицу и импортируйте ее в нужную базу данных. В любом случае, создайте резервную копию данных и сначала попробуйте метод игнорирования вставки, вам может не понадобиться использовать временные таблицы вообще. –

+0

Если проблема утеряна, отметьте ее как разрешенную. –

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