SQLYog: копировать частичные данные? - PullRequest
1 голос
/ 25 июля 2011

Для тестирования кода я копирую данные из оперативной базы данных в тестовую базу данных с помощью опции SQLYog «Копировать на другой хост». В большинстве случаев это нормально. Но для некоторых таблиц набор данных абсолютно огромен, и мне нужно только относительно небольшое подмножество данных для тестирования. Диалоговое окно «Копировать на другой хост» дает вам возможность копировать только структуру или структуру и данные.

Если мне нужны только частичные данные, мне нужно выполнить запрос select * on table where condition, экспортировать результаты в виде запроса SQL, импортировать этот запрос на тестовый хост и запустить его. Хотя это работает, это не совсем забавная процедура, особенно учитывая обстоятельства, когда даже «небольшое» подмножество тестовых данных все еще содержит много строк. Если некоторые данные уже были скопированы, это добавляет дополнительные сложности, так как мне нужно написать запрос, чтобы получить список ключей для цели, а затем добавить условие where key not in (key list) в основное условие.

Есть ли способ получить функцию "копировать на другой хост", чтобы выборочно копировать строки в целевую базу данных?

1 Ответ

2 голосов
/ 25 октября 2011

В настоящее время невозможно использовать условие WHERE для отдельных строк в инструменте копирования SQLyog .Пока для копирования выбрана только одна таблица, это нормально, но с большим количеством таблиц это не имеет смысла.

Теперь вы можете создать небольшую «фиктивную» таблицу на источнике и скопироватьэтот.Рабочий процесс может выглядеть следующим образом:

1) CREATE TABLE newtable КАК ВЫБРАТЬ * ИЗ oldtable ГДЕ ...

2) Теперь скопируйте newtable с помощью графического интерфейса SQLyog и затем удалите егов источнике, если требуется

3) RENAME newtable в цели, если требуется

Это уменьшит сетевой трафик, чтобы рассматривать только те строки, которые вы хотите передать.И вы избежите экспорта в файл, так как «сокращение» хранится на исходном сервере (не касается файловой системы или сети).

...