2012-12-29 14 views
8

मैं अपनी तालिका में एक आईडी कॉलम डालना चाहता हूं और इस तालिका का डेटा टेक्स्ट फ़ाइल से प्राप्त करना चाहता हूं। उदाहरण के लिए मेरी पाठ फ़ाइल की तरह है:MySQL लोड डेटा इन्फाइल ऑटो incremented आईडी मान

12 1212 4989 121 
121 23  123  110 
789 99  234  544 
... 

और यह लगभग 20M पंक्तियां हैं। मैं इस डेटा को किसी तालिका में सम्मिलित करना चाहता हूं और इसके लिए एक ऑटो वृद्धिशील आईडी मान कॉलम शामिल करना चाहता हूं। मैं "लोड डेटा infile" का प्रयोग करेंगे, लेकिन जैसा कि नीचे दिया गया मैं अपने तालिका बनाने के लिए करना चाहते हैं:

id a  b  c  d 
--- --- ---  ---  --- 
1 12 1212 4989 121 
2 121 23  123  110 
3 789 99  234  544 
... 

मैं mysql (कार्यक्षेत्र) का उपयोग कर तालिका में इस तरह

उत्तर

0

इस यू के लिए क्या कर सकते हैं कैसे बना सकते हैं। ।

 load data local infile 'data.csv' into table tbl fields terminated by ',' 
    enclosed by '"' 
    fields terminated by '\t' 
    lines terminated by '\n' 
    (a,b,c,d) 

अधिक संदर्भ के लिए देख this link

17

पहले स्तंभ आईडी के साथ तालिका बनाने में ऑटो वेतन वृद्धि संपत्ति:

CREATE TABLE mytable (
    id MEDIUMINT NOT NULL AUTO_INCREMENT, 
    a INT NULL, 
    b INT NULL, 
    c INT NULL, 
    d INT NULL, 
    PRIMARY KEY (id) 
) ENGINE=MyISAM; 

तो आप स्तंभ नाम देकर लोड डेटा infile के साथ तालिका में डेटा लोड होनी चाहिए:

LOAD DATA LOCAL INFILE 'C:/DATA/mydata.txt' 
INTO TABLE test.mytable 
FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' 
(a, b, c, d) SET ID = NULL; 

देखें: How to LOAD DATA INFILE in mysql with first col being Auto Increment?

+1

यह सामान्य ज्ञान था टेबल भी "लोड infile first.and बनाने के लिए "केवल 4 कॉलम हैं ieautoincrement कॉलम – sourcecode

+0

भरने वाला नहीं है यदि आपके किसी भी फ़ील्ड नाम में अवधि शामिल है, तो आपको उन्हें बैकटिक्स से घिरा होना होगा। – shacker

+0

यह बढ़ी है लेकिन यह एक आदेश नहीं है। और मैं ऑर्डर कैसे कर सकता हूं –

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