mysqldump останніх 1000 записів


11

як взяти mysqldump останніх 1000 записів з бази даних

Відповіді:


18

mysqldumpє --whereваріант. Якщо припустити, що у вас є якийсь стрибок, щоб зрозуміти, що є останніми 1000 вставленими записами (наприклад, поле з автоматичним збільшенням, яке називається id), ви повинні мати можливість застосувати це до mysqldumpкоманди, наприклад:

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

Це 1=1необхідно, тому що ключове слово "WHERE" вставляється в запит автоматично, тому ви повинні дати йому деякий SQL для оцінки.

EDIT: У цій відповіді було зроблено анонімне редагування, видаливши пробіл між --where та "1 = 1", сказавши, що команда помилилася без пробілу. Я просто перевірив, і вона працює з простором та помилками без пробілу, не знаючи, що редактор бачив.

Помилка виходу з місця:

mysqldump: unknown variable 'where1=1 ORDER BY UserID DESC LIMIT 1000'

Я зробив те, що ви пропонуєте, і підтримав вашу відповідь, а як щодо порушення обмеження цілісності?
licorna

Це зовсім інша проблема. Моє рішення - хакер у кращому випадку. Якщо ви хочете цілісність для того, щоб повернути рядки ще десь, це стане більш жорсткою проблемою і дуже залежить від вашого дизайну
jj33

Це, мабуть, змінилося з часу, коли відповідь була розміщена спочатку, але документи mysqldump тепер кажуть, що параметр слід або вказати як, --where="..."або -w "..."Дивіться dev.mysql.com/doc/refman/5.6/en/…
Метт Пассел

1
як отримати mysqldump з останніх 100 рядків ВСЕ ТАБЛИЦІ у всій базі даних?
Ракіб
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.