2011-01-04 4 views
1

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

DB1:

города состояний

DB2:

индекс субиндекс сообщений

Я хочу, чтобы в конечном итоге с одной БД, которая содержит:

города указывается индекс subindex Должности

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

ответ

2

Вы можете использовать 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

Я попробую это сейчас ... –

+0

Спасибо! Я отвечу, когда будет достигнуто выделенное время –

0

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

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

0

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

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

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

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

0

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