Получить N последних строк из mysqldump - PullRequest
5 голосов
/ 22 марта 2011

Я использую следующую команду, чтобы вывести 100 строк из каждого столбца из каждой базы данных. Проблема в том, что он возвращает first 100 записей, где я бы предпочел иметь last . Я нашел флаг, который позволяет мне упорядочивать по первичному ключу (--order-by-primary), но все равно возвращает неправильные строки. Я бы попытался вставить 'order by' в флаг where ниже, но первичный ключ различен для каждой таблицы.

mysqldump -u username -p --where="true limit 100" --all-databases > dump.sql

Есть ли способ изменить порядок перед захватом последних 100 записей или, возможно, способ обратиться к PK, а не к имени столбца PK?

Ответы [ 2 ]

0 голосов
/ 03 мая 2013

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

Попробуйте создать вторичную схему базы данных (sche_dump) и создайте скрипт, который перебирает все таблицы, запускает

create table scheme_dump.<tabname> like <tabname>; 
insert into scheme_dump.<tabname> select * from <tabname> order by <colname> desc limit 100;

и затем дамп схемы schedudump.

Не приятно.

Но исправить исходный код для одного выстрела не должно быть так сложно.

0 голосов
/ 16 ноября 2012

Может быть так: SELECT * FROM TableName ЗАКАЗАТЬ ПО ПРЕДЕЛУ DESC 100

...