mysqldump из последних 1000 записей

11

как взять mysqldump из 1000 последних записей из базы данных

bvishal4u
источник

Ответы:

18

mysqldumpесть --whereопция. Предполагая, что у вас есть какой-то элемент управления, чтобы выяснить, что представляют собой последние 1000 вставленных записей (например, вызывается поле автоинкремента id), вы должны иметь возможность добавить это в mysqldumpкоманду, например так:

mysqldump --where "1=1 ORDER BY id DESC LIMIT 1000" DB_NAME TBL_NAME

Это 1=1необходимо, потому что ключевое слово «WHERE» вставляется в запрос автоматически, поэтому вам нужно дать ему некоторый SQL для оценки.

РЕДАКТИРОВАТЬ: было сделано анонимное редактирование этого ответа, удалив пробел между --where и "1 = 1, сказав, что команда ошиблась без пробела. Я только что проверил, и она работает с пробелом и ошибками без пробела, не знаю, что редактор видел.

Ошибка при выходе из пространства:

mysqldump: unknown variable 'where1=1 ORDER BY UserID DESC LIMIT 1000'
jj33
источник
Я сделал то, что вы предлагаете, и проголосовал за ваш ответ, но как насчет нарушения целостности?
Ликорна
Это совсем другая проблема. Мое решение в лучшем случае взломать. Если вам нужна целостность для размещения строк в другом месте, это будет более
сложной
Вероятно, это изменилось с тех пор, как ответ был первоначально опубликован, но в документации mysqldump теперь говорится, что этот параметр должен быть либо указан, --where="..."либо -w "..."см. Dev.mysql.com/doc/refman/5.6/en/…
Мэтт Пасселл
1
Как получить mysqldump из последних 100 строк для КАЖДОГО ТАБЛИЦА во всей базе данных?
Ракиб