2012-09-07 13 views
7

मैं अपने MySQL डेटाबेस में HeidiSQL के साथ एक csv फ़ाइल आयात करना चाहता हूं।HeidiSQL आयात csv खाली फ़ील्ड

लेकिन मेरे कुछ फ़ील्ड खाली हैं।

हेइडीएसक्यूएल को ये खाली मूल्यों को जानने के लिए मैं क्या कर सकता हूं कि नल-मूल्यों के रूप में देखा जाना चाहिए? सीएसवी फ़ाइल के

नमूना (पिछले 2 क्षेत्रों अभी तक ज्ञात नहीं):

NULL;Students Corner;437452182;; 

बनाएं कमांड:

Incorrect integer value: '' for column 'company_id' at row 1 */ 
    Incorrect integer value: '' for column 'company_vat' at row 1 */ 
    Incorrect integer value: '' for column 'company_zip' at row 1 */ 
    etc 
+0

पोस्ट दिखाएं सीएसवी – rkosegi

+1

से तालिका और नमूना लाइनें बनाएं आप एसईटी क्लॉज के साथ लोड डेटा INFILE कमांड का उपयोग करके इसे कर सकते हैं - खाली मूल्यों के साथ खाली तारों को प्रतिस्थापित करें। – Devart

+0

बदलें ;; द्वारा; न्यूल; अपने सीएसवी में और पुनः प्रयास करें। –

उत्तर

7

यदि इसे प्रत्येक खाली फ़ील्ड में \ N लिखने के बजाय \ N लिखकर हल किया गया है!

+1

यह अच्छा है। अगर आप इसका इस्तेमाल करते हैं तो अपना जवाब स्वीकार करना न भूलें। मैं अभी भी कहूंगा कि 'लोड डेटा इन्फाइल' क्वेरी समाधान बेहतर है, क्योंकि किसी के पास इसे आयात करने से पहले एक CSV फ़ाइल को प्री-प्रोसेस करने का विकल्प नहीं है। क्वेरी लिखने से आप उस तर्क को एक ही स्क्रिप्ट में डाल सकते हैं, जिसका अर्थ है अगली बार जब आप इसे केवल एक कमांड के रूप में चला सकते हैं, और फ़ाइल की सामग्री की जांच करने की चिंता न करें। – SDC

+0

हाँ, आप बिल्कुल सही हैं! सहायता के लिए धन्यवाद! – francisMi

+1

वाह, यह उत्तर कुल जीवनसेवक है! मैं एक बड़ी सीएसवी फ़ाइल (200k पंक्तियों और 34 कॉलम) आयात करने की कोशिश कर रहा हूं, और यह मुझे नल मूल्यों के बारे में त्रुटियों और चेतावनियों को फेंकने के लिए पागल कर रहा है। ऐसा लगता है कि 'NULL' के स्थान पर' \ N' का उपयोग करना या बस एक खाली क्षेत्र जादू का काम किया! :) – Terry

5

आप आयात कर सकते हैं:

CREATE TABLE `db`.`customers` (
     `company_id` INT NOT NULL AUTO_INCREMENT , 
     `company_name` VARCHAR(40) NULL , 
     `company_number` INT NULL , 
     `company_vat` INT NULL , 
     `company_zip` INT NULL, 
    PRIMARY KEY (`company_id`)); 

मैं इन त्रुटि मिलती है LOAD DATA INFILE क्वेरी का उपयोग कर CSS फ़ाइलों को MySQL में।

आपके मामले में, आप कुछ इस तरह लिखना होगा:

LOAD DATA INFILE filename.txt 
INTO TABLE customers 
FIELDS TERMINATED BY ';' 
LINES TERMINATED BY '\n' 
(@id, @name, @number, @vat, @zip) 
SET 
    company_id  = (CASE WHEN @id='' THEN NULL ELSE @id END), 
    company_name = (CASE WHEN @name='' THEN NULL ELSE @name END), 
    company_number = (CASE WHEN @number='' THEN NULL ELSE @number END), 
    company_vat = (CASE WHEN @vat='' THEN NULL ELSE @vat END), 
    company_zip = (CASE WHEN @zip='' THEN NULL ELSE @zip END) 

(आप लाइन मार्करों, आदि के अपने अंत के आधार पर इस समायोजित करने के लिए, की आवश्यकता हो सकती है, लेकिन यह बहुत है कि तुम क्या जरूरत के करीब होना चाहिए)

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