mysqldump degli ultimi 1000 record


11

come prendere mysqldump degli ultimi 1000 record da un database

Risposte:


18

mysqldumpha --whereun'opzione. Supponendo di avere una sorta di punta per capire quali sono gli ultimi 1000 record inseriti (ad esempio, un campo di auto-incremento chiamato id), dovresti essere in grado di incollarlo sul mysqldumpcomando, in questo modo:

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

Ciò 1=1è necessario perché la parola chiave "WHERE" viene inserita automaticamente nella query, quindi è necessario dargli un po 'di SQL da valutare.

EDIT: è stata apportata una modifica anonima a questa risposta che rimuoveva lo spazio tra --where e "1 = 1, dicendo che il comando era errato senza spazio. Ho appena testato e funziona con lo spazio e gli errori senza lo spazio, incerto su cosa l'editore stava vedendo.

L'errore quando si lascia lo spazio:

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

Ho fatto ciò che mi hai suggerito e ho votato a favore della tua risposta, ma che dire della violazione del vincolo di integrità?
Licorna,

Questo è un altro problema. La mia soluzione è un hack al massimo. Se vuoi integrità per rimettere le file da qualche altra parte, questo sarà un problema più difficile e molto dipendente dal tuo design
jj33

Ciò è probabilmente cambiato da quando la risposta è stata pubblicata originariamente, ma i documenti di mysqldump ora dicono che l'opzione dovrebbe essere specificata come --where="..."oppure -w "..."Vedi dev.mysql.com/doc/refman/5.6/en/…
Matt Passell

1
come ottenere un mysqldump delle ultime 100 righe per OGNI TABELLA in un intero database?
Rakib,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.