2012-12-29 8 views
8

Ich möchte eine ID-Spalte in meine Tabelle einfügen und Daten dieser Tabelle aus einer Textdatei abrufen. Zum Beispiel meiner Textdatei ist wie folgt aus:MySQL Load Data Infile automatisch inkrementiert ID-Wert

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

und es hat etwa 20 Millionen Zeilen. Ich möchte diese Daten in eine Tabelle einfügen und eine Spalte für automatisch inkrementierte ID-Werte einfügen. Ich werde „Daten laden infile“ verwenden, aber ich möchte, dass meine Tabelle erstellen, wie unten angegeben:

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

Wie kann ich diese Art der Tabelle erstellen mysql (Werkbank) mit

Antwort

0

dies für u tun können. .

 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) 

für weitere Referenz siehe this link

17

erste, erstellen Tabelle mit Spalten-ID hat Autoinkrement Eigenschaft:

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; 

dann sollten Sie Daten in der Tabelle mit Lastdaten infile laden, indem Sie Spaltennamen geben:

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; 

siehe: How to LOAD DATA INFILE in mysql with first col being Auto Increment?

+1

es gesunden Menschenverstand war Tabelle auch die „Last infile zu erstellen first.and "hat nur 4 Spalten, dh die Spalte" autoincrement "füllt nicht – sourcecode

+0

Wenn einer Ihrer Feldnamen Punkte enthält, müssen Sie diese mit Backticks umgeben. – shacker

+0

es ist inkrementiert, aber es ist keine bestellung.und wie kann ich eine bestellung machen –