2012-11-26 13 views
7

INFILE कमांड के माध्यम से आयात करते समय MySQL को किसी विशिष्ट पंक्ति को अनदेखा करने की कोशिश कर रहा है। अनिवार्य रूप से, यह सीएसवी फ़ाइल में "हेडर" पंक्ति है।MySQL infile शीर्षलेख पंक्ति को अनदेखा करें

LOAD DATA LOCAL INFILE 'C:\myfile.txt' REPLACE INTO TABLE my_db.my_table; 

मैं उपेक्षा आदेश को देखा है में, लेकिन उस डुप्लिकेट चाबी अनदेखी के लिए नहीं है। क्या .txt फ़ाइल में एक विशिष्ट प्रविष्टि/पंक्ति को अनदेखा करने का कोई तरीका है?

उत्तर

10

IGNORE एक LOAD DATA INFILE बयान में दो अर्थ है। डुप्लिकेट कुंजी त्रुटियों की बात आती है जब पहली बार प्रतिस्थापित/अनदेखा होता है। दूसरा अर्थ वह है जिसे आप ढूंढ रहे हैं।

LOAD DATA LOCAL INFILE 'C:\myfile.txt' REPLACE INTO TABLE my_db.my_table IGNORE 1 LINES; 

यह पहली 5 लाइनों की अनदेखी करेंगे, जहां के अंत: पूरा बयान IGNORE n LINES

आप एक यादृच्छिक लाइन नहीं जा सकते हैं, लेकिन आप इस तरह अपने inputfile के सिर पर n लाइनों को छोड़ सकते हैं है लाइन EOL\n पर डिफ़ॉल्ट है और LINES TERMINATED BY 'CHR'

+0

तो, अगर यह 'इग्नोर 5 लाइन' था तो क्या यह 5 वीं रेखा को अनदेखा कर देगा या क्या यह पहली 5 लाइनों को अनदेखा करेगा? – Plummer

+0

यह पहली 5 लाइनों को अनदेखा कर देगा, जहां लाइन का अंत (ईओएफ) "\ n" को डिफॉल्ट कर रहा है और 'सीईआर' –

+0

'लाइनों द्वारा टर्मिनल' का उपयोग करके किसी भी चरित्र पर सेट किया जा सकता है, बहुत उपयोगी, धन्यवाद। – Plummer

6

अपने बयान के लिए इस विकल्प जोड़ें:

IGNORE 1 LINES 
+0

का उपयोग कर किसी भी चरित्र पर सेट किया जा सकता है मुझे यह जवाब बहुत सरल लगता है। – caiosm1005

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