Можно ли объединить две базы данных MySQL в одну? - PullRequest
1 голос
/ 04 января 2011

Допустим, у меня есть две базы данных MySQL с некоторыми сложными структурами таблиц.Ни одна из баз данных не имеет одинакового имени таблицы.Допустим, эти таблицы не содержат строк (они есть, но я мог бы обрезать таблицы, данные сейчас не важны, просто тестирование).Допустим, мне нужно, чтобы эти 2 базы данных были объединены в одну.Например:

DB1:

города-государства

DB2:

индексных сообщений с субиндексом

Я хочу получить одинБД, содержащая:

Индекс городов субиндекса сообщений

Возможно ли это?

Ответы [ 4 ]

2 голосов
/ 04 января 2011

Вы можете использовать RENAME TABLE для всех таблиц в одной из баз данных.

См .: http://dev.mysql.com/doc/refman/5.0/en/rename-table.html

RENAME TABLE current_db.tbl_name TO other_db.tbl_name;

При условии отсутствия дубликатов.

0 голосов
/ 04 января 2011

Да, я думаю, что это возможно. Все, что вам нужно сделать, это экспортировать 2 таблицы в скрипт sql, заменить одно имя таблицы другим; добавить сценарии и запустить его один раз

0 голосов
/ 04 января 2011

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

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

Запустите сценарий для второй базы данных.

ПРИМЕЧАНИЕ. Эту опцию следует запускать ТОЛЬКО в том случае, если вы уверены на 100%, что в обеих базах данных нет перекрытия схемы !!!!

0 голосов
/ 04 января 2011

Какой механизм хранения вы используете?

При использовании myISAM пытались ли вы скопировать 3 файла, представляющих таблицу (* .frm, * .myd, * .myi), из одного каталога DB (в mysql / data / db1) в другой (в mysql / data). / db2)

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