Копирование данных из одной таблицы в другую.Базы данных разные, а структура таблиц другая - PullRequest
3 голосов
/ 13 августа 2011

Я ищу решения для моей проблемы, связанной с копированием данных MySQL.У меня есть таблица TAB1 в базе данных DB1, которая содержит некоторые данные.Теперь я хочу, чтобы некоторые из этих строк данных были перенесены в другую таблицу TAB2 в другую базу данных DB2.

Какой идеальный способ написать такой сценарий SQL для сервера MySQL.Я не могу написать java / php программу и т. Д., Потому что у меня нет доступа к базе кода.

Любые примеры ссылок будут полезны.Я знаю, что это можно сделать в Oracle через DBLink, но как это сделать в MySQL.

Спасибо

Ответы [ 4 ]

6 голосов
/ 13 августа 2011
insert into db2.table2 (field1,field2,..,fieldN)
select field1,field2,..,fieldN from db1.table1

РЕДАКТИРОВАТЬ. Если вам нужно обновить две разные базы данных, это правильный синтаксис:

update 
db2.table2 as t2,
db1.table1 as t1
set 
t2.field1 = t1.field1,
t2.field2 = t1.field2,
t2.field3 = t1.field3
where t1.id = t2.id
3 голосов
/ 13 августа 2011

Если обе базы данных находятся на одном сервере, то проще всего использовать INSERT INTO... SELECT query

INSERT INTO
   database2.table2 (c1, c2, c3)
SELECT
   c2, c4, MD5(c3)  --you can choose only these columns that are needed as well as use functions to convert data to required format if needed
FROM
   database1.table1
0 голосов
/ 31 июля 2013

Это скопирует все данные из одной таблицы в другую (MySQL)

INSERT INTO  `databse_name`.`tablename_copy` 
SELECT * 
FROM  `databse_name`.`tablename` ;

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

0 голосов
/ 13 августа 2011

Найдите бесплатный инструмент ETL какого-либо вида:

http://searchdatamanagement.techtarget.com/answer/The-ETL-process-and-MySQL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...