मैसकल्डम्प ड्रॉप टेबल जोड़ें?


10

मैं कोडेक्स में ध्यान देता हूं कि --add-drop-table विकल्प एक डेटाबेस का बैकअप लेने के लिए प्रदर्शित किया जाता है। इससे पहले कि मैं कुछ भी पेंच करूं, क्या इसका मतलब यह है कि जब बैकअप अंततः आयात किया जाता है, तो गंतव्य ओवरबाइट में मौजूद होने पर टेबल ओवरराइट कर देगा?

जब मैं उन्हें पीछे छोड़ता हूं तो मैं टेबल को गिराना नहीं चाहता!

user@linux:~/files/blog> mysqldump --add-drop-table -h mysqlhostserver
 -u mysqlusername -p databasename (tablename tablename tablename) | bzip2
 -c > blog.bak.sql.bz2

Enter password: (enter your mysql password)
user@linux~/files/blog>

http://codex.wordpress.org/Backing_Up_Your_Database#Using_Straight_MySQL_Commands

जवाबों:


10

यह केवल आपके MySQL डंप के आउटपुट को प्रभावित करता है जो बनाई गई फ़ाइल में होता है।

यह आवश्यक नहीं है। यह सिर्फ इतना है कि यदि आप बनाई गई डंप फ़ाइल को एक डेटाबेस में आयात करते हैं जिसमें पहले से ही समान नाम वाली एक तालिका है, तो वह उस तालिका को छोड़ देगा और फिर उसके स्थान पर नई तालिका जोड़ देगा। अन्यथा आपको एक त्रुटि मिलेगी, और डंप फ़ाइल आयात नहीं की जाएगी।

यह डंप फ़ाइल में तालिका विवरण बनाने से पहले इस पंक्ति को जोड़ता है:

DROP TABLE IF EXISTS `tablename`;

यदि आप डंप फ़ाइल को एक नए डेटाबेस में आयात करने की योजना बनाते हैं, तो इससे कोई फर्क नहीं पड़ेगा।


आपको पता है कि दिलचस्प यह है कि भले ही मैं मौजूदा WP डेटाबेस पर एड-ड्रॉप-टेबल विकल्प के बिना डंप का उपयोग करता हूं, यह ठीक भी काम करता है।
AlxVallejo

5

ऐसा इसलिए है क्योंकि समग्र वाक्य रचना कुछ इस तरह है:

mysql>mysqldump --opt --all-databses > all.sql

--opt--add-drop-tableMySQL प्रलेखन में उल्लिखित डिफ़ॉल्ट रूप से सक्षम है (जिसका अर्थ है:)।


0

इस सिंटैक्स में --add-drop-table को हटाते समय, वैसे भी --add-drop-table का उपयोग किया जाता है, क्योंकि --opt डिफ़ॉल्ट है (जब तक आप --skip-opt का उपयोग नहीं करते हैं) और --opt में --add-drop शामिल हैं -table। यहां देखें: https://dev.mysql.com/doc/refman/5.6/en/mysqldump.html#option_mysqldump_opt

और, जैसा कि ऊपर कहा गया है, इसका मतलब यह नहीं है कि जब आप बैकअप लेते हैं तो आपकी टेबल को गिरा दिया जाता है, लेकिन यह है कि टेबल छोड़ने की आज्ञा एसक्यूएल फ़ाइल में शामिल है, क्योंकि यही आप डंप के लिए चाहते हैं, इसलिए आप बिना डंप आयात कर सकते हैं तालिका में पहले से मौजूद त्रुटियाँ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.