2012-12-29 25 views
8

Voglio inserire una colonna ID nella mia tabella e ottenere i dati di questa tabella da un file di testo. Per esempio il mio file di testo è così:MySQL Load Data Infile valore incrementale automatico incrementato

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

e ha circa 20M righe. Voglio inserire questi dati in una tabella e includere una colonna di valori ID auto incrementati per essa. Userò "LOAD DATA INFILE", ma voglio creare la mia tabella come di seguito indicato:

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

Come si crea questo tipo di tabella utilizzando mysql (banco di lavoro)

risposta

0

questo può fare per u. .

 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) 

per più di riferimento vedere this link

17

prima, creare tabella con ID di colonna ha proprietà di incremento automatico:

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; 

allora si dovrebbe caricare i dati nella tabella con LOAD DATA INFILE dando nomi delle colonne:

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; 

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

+1

era senso comune per creare la tabella first.and anche il "carico infile "ha solo 4 colonne colonna di ieautoincrement che non sta andando a riempire – sourcecode

+0

Se uno qualsiasi dei tuoi nomi di campi include periodi, dovrai circondarli con i backtick. – shacker

+0

è incrementato ma non è un ordine.e come posso fare un ordine –

Problemi correlati