mysqldump dari 1000 record terbaru

11

cara mengambil mysqldump dari 1000 record terbaru dari database

bvishal4u
sumber

Jawaban:

18

mysqldumpmemiliki --whereopsi. Dengan anggapan Anda memiliki semacam pijakan untuk mencari tahu apa 1000 catatan yang dimasukkan terakhir (misalnya, bidang kenaikan-otomatis disebut id), Anda harus dapat menempelkannya ke mysqldumpperintah, seperti:

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

Ini 1=1diperlukan karena kata kunci "WHERE" dimasukkan ke dalam kueri secara otomatis, jadi Anda harus memberikannya beberapa SQL untuk mengevaluasi.

EDIT: Ada edit anonim yang dibuat untuk respons ini menghapus ruang antara --di mana dan "1 = 1, mengatakan bahwa perintah itu salah tanpa spasi. Saya hanya menguji dan berfungsi dengan spasi dan kesalahan tanpa spasi, tidak yakin apa editor melihat.

Kesalahan saat meninggalkan ruang:

mysqldump: unknown variable 'where1=1 ORDER BY UserID DESC LIMIT 1000'
jj33
sumber
Saya melakukan apa yang Anda sarankan dan saya menaikkan jawaban Anda, tetapi, bagaimana dengan pelanggaran batasan integritas?
licorna
Itu masalah lain. Solusi saya adalah hack terbaik. Jika Anda ingin integritas untuk mengembalikan baris ke tempat lain, itu akan menjadi masalah yang lebih sulit dan sangat tergantung pada desain Anda
jj33
Ini mungkin telah berubah sejak jawabannya awalnya diposting tetapi dokumen mysqldump sekarang mengatakan bahwa opsi tersebut harus ditentukan sebagai --where="..."atau -w "..."Lihat dev.mysql.com/doc/refman/5.6/en/…
Matt
1
bagaimana cara mendapatkan mysqldump dari 100 baris terakhir untuk SETIAP TABEL di seluruh database?
Rakib