У меня есть база данных MySQL, на которой я выполнил пару дампов. У меня есть эти файлы: dumpA, dumpB, dumpC
dumpA содержит все таблицы во время дампа
dumpB и dumpC содержит только таблицу T
Между дампами я усечена таблица T, поэтому dumpA содержит первичные ключи 1-100 для таблицы T, dumpB 101-200 и dumpC 201-300.
Я хочу полностью восстановить таблицу T.
Как импортировать только таблицу T из dumpA, которая содержит другие таблицы?
Как только я это сделаю, будет импортирован dumpB truncate table T, чтобы данные из dumpA исчезли?
Дампы - это простой SQL, который вы можете редактировать вручную. Просто выньте объявления таблицы T из dumpA и перетащите их в другой файл. Затем убедитесь, что dumpB и dumpC не содержат ничего, что могло бы уничтожить предыдущий дамп, например TRUNCATE
или DROP TABLE
и т.д. На самом деле вы можете делать все запросы на создание таблицы из dumpB и dumpC alltogether, поскольку они не являются необходимо.
Я не знаю, что MySQL может выполнять какую-либо фильтрацию данных при импорте, так что это самый простой способ.
Вместо того, чтобы делать это вручную, вы можете использовать следующий script, чтобы извлечь таблицу T из каждой из дампов и использовать ее. http://kedar.nitty-witty.com/blog/mydumpsplitter-extract-tables-from-mysql-dump-shell-script/