नवीनतम 1000 रिकॉर्ड्स के mysqldump


11

कैसे एक डेटाबेस से नवीनतम 1000 रिकॉर्ड के mysqldump लेने के लिए

जवाबों:


18

mysqldumpएक --whereविकल्प है। मान लें कि आपके पास पिछले 1000 सम्मिलित रिकॉर्ड क्या हैं (उदाहरण के लिए, एक ऑटो-इन्क्रिमेंट फ़ील्ड कहा जाता है id), यह पता लगाने के लिए आपको किसी प्रकार का टॉगल करना है , तो आपको mysqldumpकमांड पर ऐसा करने में सक्षम होना चाहिए :

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

यह 1=1आवश्यक है क्योंकि "WHERE" कीवर्ड स्वचालित रूप से क्वेरी में डाला जाता है, इसलिए आपको मूल्यांकन करने के लिए इसे कुछ एसक्यूएल देना होगा।

संपादित करें: इस प्रतिक्रिया के लिए एक अनाम संपादन किया गया था, जिसमें - वे और "1 = 1 के बीच के स्थान को हटाते हुए कहा गया था कि कमांड बिना स्पेस के त्रुटिपूर्ण है। मैंने अभी परीक्षण किया है और यह स्पेस के बिना स्पेस और त्रुटियों के साथ काम करता है, अनिश्चित है कि क्या संपादक देख रहा था।

स्थान छोड़ते समय त्रुटि:

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

मैंने वही किया जो आपने सुझाया और मैंने आपके उत्तर को बढ़ा दिया, लेकिन, अखंडता के उल्लंघन के बारे में क्या?
लाइसोर्ना

यह एक पूरी अन्य समस्या है। मेरा समाधान एक हैक सबसे अच्छा है। यदि आप पंक्तियों को वापस कहीं और रखना चाहते हैं, तो यह एक कठिन समस्या है और आपके डिजाइन पर बहुत निर्भर है
jj33

यह शायद बदल गया है के बाद से इस सवाल का जवाब मूल रूप से तैनात किया गया था लेकिन mysqldump डॉक्स अब कहना है कि विकल्प या तो के रूप में निर्दिष्ट किया जाना चाहिए --where="..."या -w "..."देखें dev.mysql.com/doc/refman/5.6/en/...
मैट Passell

1
पूरे डेटाबेस में EVERY TABLE के लिए अंतिम 100 पंक्तियों का mysqldump कैसे प्राप्त करें?
रकीब
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.