mysqldump z ostatnich 1000 rekordów

11

jak pobrać mysqldump z ostatnich 1000 rekordów z bazy danych

bvishal4u
źródło

Odpowiedzi:

18

mysqldumpma --whereopcję. Zakładając, że masz pewien opór, aby dowiedzieć się, jakie są ostatnie 1000 wstawionych rekordów (na przykład pole o automatycznej inkrementacji id), powinieneś być w stanie przypisać to do mysqldumppolecenia, tak jak:

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

Jest 1=1to konieczne, ponieważ słowo kluczowe „GDZIE” jest automatycznie wstawiane do zapytania, więc musisz dać mu trochę SQL do oceny.

EDYCJA: Dokonano anonimowej edycji tej odpowiedzi, usuwając spację między --where a „1 = 1”, mówiąc, że polecenie zostało wykonane bez spacji. Właśnie przetestowałem i działa ze spacją i błędami bez spacji, nie wiem co redaktor widział.

Błąd podczas opuszczania miejsca:

mysqldump: unknown variable 'where1=1 ORDER BY UserID DESC LIMIT 1000'
jj33
źródło
Zrobiłem to, co zasugerowałeś, i głosowałem za odpowiedzią, ale co z naruszeniem ograniczenia integralności?
licorna
To zupełnie inny problem. Moje rozwiązanie to w najlepszym razie hack. Jeśli chcesz rzetelności w ponownym umieszczeniu wierszy w innym miejscu, będzie to trudniejszy problem i bardzo zależeć od twojego projektu
jj33
Prawdopodobnie zmieniło się to od czasu opublikowania odpowiedzi, ale dokumenty mysqldump mówią teraz, że opcję należy określić jako --where="..."lub -w "..."Zobacz dev.mysql.com/doc/refman/5.6/en/…
Matt Passell
1
jak uzyskać mysqldump ostatnich 100 wierszy dla KAŻDEJ TABELI w całej bazie danych?
Rakib