2011-03-22 2 views
5

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

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

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

+2

Не совсем. Но вы можете заказать на полях: заказ от '1,2,3,4,5'. Если ваш ПК всегда состоит из первых (x) полей, это работает. Если ваш ПК «1,3,5», он не будет :) – Konerak

+0

Все еще интересно? У меня есть версия linux с этим revert & limit, это было так просто. Было бы полезно, если первичный ключ не является первым столбцом для всех таблиц. Я пытаюсь сделать настоящий патч с параметрами командной строки для этих вещей, но еще не уверен, как его публиковать, поскольку ему нужны некоторые mysql-client-libs. – flaschenpost

+0

Я пытаюсь опубликовать его как MySQL Feature Request 69163, посмотрим. – flaschenpost

ответ

-1

Может быть, это: SELECT * FROM TableName ORDER BY DESC LIMIT 100

+0

- это синтаксическая ошибка. 'desc' - зарезервированное слово, и в любом случае вы не можете иметь оговорку о свободном порядке. –

0

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

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

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

, а затем сбросить scheme_dump схему.

Не хорошо.

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

Смежные вопросы