Необходимо сохранить дамп sql в другой схеме в MYSQL V5.1.11 - PullRequest
0 голосов
/ 03 ноября 2011

У меня есть ситуация, в которой я сделал резервную копию (SQL скрипты, содержащие запросы на вставку) таблицы в одной из сред, и я хочу, чтобы резервная копия была восстановлена ​​в другой схеме в MYSQLClient версии 5.1.11. Проблема в том, что файл слишком большой (200 МБ).

Файл резервной копии содержит запрос «use schema_name», поэтому, если я попытаюсь восстановить его, он будет восстановлен в имени схемы, указанном в этом сценарии.

Также я не могу редактировать этот файл, так как он слишком большой, чтобы после редактирования он не сохранялся.

Примечание: приведенная выше схема означает БАЗУ ДАННЫХ.

Пожалуйста, предложите мне подход.

Спасибо.

1 Ответ

1 голос
/ 03 ноября 2011

Если вы действительно не можете редактировать файл дампа (не знаю, какую ОС вы используете, но если это Linux, то вы можете попробовать использовать что-то вроде sed для замены имени схемы или Windows-эквивалент ) тогда вы можете попробовать:

  1. Создать исходную схему в вашей новой базе данных
  2. Запустить файл дампа в исходную схему в новой базе данных
  3. Создайте новую схему в новой базе данных
  4. Переименуйте каждую таблицу из исходной схемы в новую схему.
  5. Удалите оригинальную схему

Вы можете сгенерировать сценарий для перемещения всех таблиц в одной схеме в другую схему с помощью следующего сценария:

Чтобы создать сценарий для перемещения всех таблиц из 'FromSchema' в 'ToSchema':

select concat('RENAME TABLE ',table_schema,'.',table_name,' TO ','ToSchema','.',table_name,';')
from information_schema.tables t
where t.table_schema = 'FromSchema';

Удачи!

...