आयात पर एक mysql तालिका की डंप ने मौजूदा रिकॉर्ड्स को बदल दिया


9

मैंने mysqldump का उपयोग करके एक डंप लिया।

mysqldump -u... -p... mydb t1 > mydb_table.sql

फिर मैंने एक ही डेटाबेस में एक ही तालिका वाले डंप को आयात किया, लेकिन अलग-अलग रिकॉर्ड ।।

mysql -u...-p... mydb < mydb_tables.sql

आयात db में प्राथमिक_की 1 से 1000 तक के रिकॉर्ड थे, और निर्यात करने वाले db में 5000 से 10,000 थे।

लेकिन मौजूदा रिकॉर्ड के आयात पर, 1 से 1000 तक हटा दिया गया ..

किस तरह?? क्यों?? यदि यह एक डिफ़ॉल्ट व्यवहार है, तो मैं अगली बार ऐसा नहीं होने के लिए डंप करने के लिए क्या विकल्प दे सकता हूं।

जवाबों:


12

Mysqldump, डिफ़ॉल्ट रूप से, तालिका को गिरा देगा। आपको --no-create-infoइस तरह का विकल्प निर्दिष्ट करना चाहिए :

mysqldump -u... -p... --no-create-info --skip-extended-insert mydb t1 > mydb_table.sql

इस तरह, आपके पास सौदा करने के लिए केवल आवेषण होते हैं। का उपयोग कर --skip-extended-insertएक समय में एक पंक्ति सम्मिलित करेगा। यह डुप्लिकेट मुद्दों से निपटने में मदद करता है, लेकिन आपके पास इस तरह से आयात होगा:

mysql -u...-p... --force mydb < mydb_tables.sql

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


क्या डंप के दौरान हटाए गए डेटा को पुनः प्राप्त करना संभव है?
अरुण कुमारेश
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.