2012-10-01 17 views
7

ओवरराइट करने के साथ मैं बहुत कुछ googled और मुझे इसके बारे में कुछ नहीं मिला!कमांड लाइन से MySQL डंप आयात करने के लिए

[[email protected] backups]# mysql -u username_1 -p db_1 < tables_to_import/tables.sql 
ERROR 1050 (42S01) at line 19: Table 'ps_customer' already exists 

mysql -f के साथ समान है। मैं बस उस .sql को आयात करना चाहता हूं और उस तालिका को फिर से लिखना चाहता हूं, क्या कोई मेरी मदद कर सकता है?

पेज। मुझे पता है कि जब आप एक डीबी निर्यात करते हैं तो आप विकल्प "ड्रॉप टेबल" चुन सकते हैं, लेकिन अगर मेरे पास बैकअप है, तो इस घोषणा के बिना? मैं कैसे मजबूर कर सकता हूँ? धन्यवाद

उत्तर

3

क्या आप डेटाबेस की संपूर्णता को ओवरराइट करने का प्रयास कर रहे हैं? यदि ऐसा है, तो आप सभी तालिकाओं को मैन्युअल रूप से छोड़ सकते हैं, और फिर अपनी आयात स्क्रिप्ट चला सकते हैं। Phpmyadmin में करना आसान है। यदि आप सीएलआई का उपयोग कर रहे हैं, तो सबसे तेज़ तरीका DROP DATABASE databasename और फिर create database का उपयोग करना होगा, हालांकि मुझे लगता है कि आपको किसी भी गैर-रूट उपयोगकर्ताओं के लिए विशेषाधिकार फिर से देना होगा।

एक और विकल्प आपकी डंप फ़ाइल खोलना होगा और प्रत्येक CREATE तालिका आदेशों से पहले DROP TABLE tablename जोड़ें। आप शायद कुछ चालाक regex के साथ यह आसानी से कर सकते हैं।

+0

हाय ऑक्टॉन! नहीं, मैं table.sql में निहित केवल टेबल को ओवरराइट करना चाहता हूं (इस .sql में मैंने 6 टेबल निर्यात किए हैं, इसलिए मैं केवल इन्हें ओवरराइट करना चाहता हूं), क्या यह एक तार्किक दृष्टिकोण से संभव है या शायद मुझे कुछ याद आ रहा है? – ienabellamy

+1

फिर मेरे दूसरे सुझाव का उपयोग करें और table.sql में प्रत्येक CREATE तालिका कमांड के लिए एक ड्रॉप तालिका आदेश जोड़ें। ऐसा करने के लिए आप एक शेल स्क्रिप्ट लिख सकते हैं, लेकिन यदि केवल 6 टेबल हैं, तो आप इसे एक मिनट के भीतर हाथ से करने में सक्षम होना चाहिए। टिप ऑक्टम के लिए – octern

+0

धन्यवाद। आपको मिलते हैं ;-) – ienabellamy

-2

मैं सुझाव दूंगा - ड्रॉप-ड्रॉप-टेबल विकल्प।

21

जब आप mysqldump add -add-drop-table (जैसे twihoX का उल्लेख किया) करते हैं। फिर सामान्य रूप से अपना आयात करें। तो कुछ ऐसा:

mysqldump --add-drop-table -u user -p > dumpfile.sql 

mysql -u user -p < dumpfile.sql 
+0

डाउन रेटिंग क्यों? – DrewB

+0

टिप्पणी करने के लिए खेद है, लेकिन यह दूसरी तरफ है। mysql नहीं ...> dumpfile.sql। तो आदेशों mysqldump --add-ड्रॉप-तालिका -u उपयोगकर्ता -p> dumpfile.sql और फिर mysql -u उपयोगकर्ता -p WoodyDRN

+0

अच्छा कैच किया जाएगा। मैंने गलती तय की है। – DrewB

संबंधित मुद्दे