Update таблиці з однієї бази даних в таблицю іншої бази даних - stack overflow російською

Доброго времени суток, товариші! Прошу порадити як краще зробити.
Мета - відновити дані з однієї таблиці в іншу. Структура таблиць ідентична.
БД на різних серверах.
шматок коду

Цей запит я беру з бази. Але не можу розібратися як після SELECT зробити UPDATE потрібної інформації.

І ще питання як правильно зробити так, щоб обсяг запиту на відновлення не поклав базу даних на довго?
Тепер у мене глухий кут з implode ( ',' $ result);

це масив отриманий SELECT му з БД. Викликаю implode (); він дає тільки частина масиву до першого роздільника. Як мені отримати весь масив?

заданий 5 Вересня '16 об 11:14

Для цього зручно скористатися запитом INSERT INTO. SELECT. за допомогою якого ви можете перегнати дані з однієї таблиці в іншу. Так як у вас таблиці знаходяться в різних базах даних, то краще за все скористатися розширеної нотації, вказавши перед іменами таблиць явно назви баз даних. В цьому випадку ви не будете залежати в запиті від поточної бази даних.

Нові записи вставити в таблицю, для того, щоб оновити існуючі дані в запит слід додати ключове слово ON DUPLICATE KEY UPDATE. затвердження в якому спрацюють в тому випадку, якщо в таблиці вже є запис зі вставляються первинним ключем. В цьому випадку, слід оновити вже існуючі значення, так як це показано в прикладі нижче.

У наступному запиті, дані з таблиці table_one бази даних currdb перегоняются в однойменну таблицю базу даних otherdb.

У конструкції ON DUPLICATE KEY UPDATE доведеться перерахувати всі стовпці, які ви хочете оновити.

Для того, щоб не заблокувати таблиці на довго, зменшуйте кількість записів в конструкції LIMIT і оновлюйте дані в кілька прийомів.

Якщо бази даних у вас розташовані на різних серверах, тоді доведеться спочатку витягти SELECT-запиту дані з першого сервера, а потім сформувати багатостроковий INSERT-запит до другого сервера. Тут так само можна скористатися конструкцією ON DUPLICATE KEY UPDATE. для того, щоб оновлювати вже існуючі дані

У цього способу є одне обмеження, розмір SQL-запиту, який ви спрямовуєте сервера не повинен перевищувати розмір заданий параметром max_allowed_packet (потрібно або збільшити розмір цієї директиви, або зменшити кількість записів в LIMIT).

Плюс, якщо це не разова, а переодическая операція, слід розглянути штатний механізм реплікації, який пережене дані набагато швидше і точніше, ніж це буде в будь-який PHP-продажу.