MYSQL: выборочный дамп базы данных с предложениями where - PullRequest
0 голосов
/ 06 ноября 2018

Мне нужно создать скрипт для автоматического обновления моей рабочей копии производственной базы данных до последних данных и структуры / и т. Д. По желанию.

Проблема в том, что производственная база данных чрезвычайно велика, но большую ее часть составляют около 10 таблиц с миллионами строк, которые мне не нужны.

Я хочу сделать полный дамп базы данных для всех таблиц, но выборочно ограничить число строк, взятых из очень больших таблиц, чтобы сохранить конечный размер базы данных небольшим при сохранении разумного набора выборок для выполнения запросов.

Я попытался создать скрипт на основе предложений из этого вопроса

mysqldump -u root -p devdb smallTableNoWhereClause, bigTableWithWhereClauseAndOrderBy --where '1=1 order by id desc limit 2000'

Выполнение этого scirpt, однако, приводит к бессмысленной ошибке:

mysqldump: Couldn't execute 'SELECT /*!40001 SQL_NO_CACHE */ * FROM `WH_SkuArrivals` WHERE 1 order by id desc limit 10': Unknown column 'id' in 'order clause' (1054)

Что не имеет смысла, потому что 'id' - это первичный ключ этой таблицы.

Правильно ли создавать сценарий дампа, подобный этому, есть ли лучший вариант, или мне придется создавать сценарий дампа без подсказок для всех небольших таблиц (около 500) и отдельных скриптов с предложениями where и order by для больших таблиц, а затем загружать каждый из этих дампов один за другим в новую базу данных?

1 Ответ

0 голосов
/ 06 ноября 2018

Я думаю, у вас есть опечатка

mysqldump -u root -p devdb smallTableNoWhereClause, bigTableWithWhereClauseAndOrderBy --where="1 ORDER BY id DESC LIMIT 2000"

вам нужно написать его с равным знаком WHERE = "..." и пропущенными кавычками

MysqlDocs

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