2012-12-29 6 views
8

Chcę wstawić kolumnę ID do mojej tabeli i pobrać dane tej tabeli z pliku tekstowego. Na przykład mój plik tekstowy jest tak:Dane obciążenia MySQL Infile auto incremented Wartość identyfikatora

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

i ma około 20M wiersze. Chcę wstawić te dane do tabeli i wstawić do tego kolumnę z automatycznie zwiększaną wartością identyfikatora. Użyję „danych plik_we Load”, ale chcę utworzyć mój stół, jak wskazano poniżej:

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

Jak mogę stworzyć tego rodzaju tabeli MySQL (warsztatu)

Odpowiedz

0

to może zrobić dla 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) 

więcej patrz odnośnik this link

17

najpierw utworzyć tabelę z kolumną ID ma właściwość automatycznego przyrostu:

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; 

następnie należy załadować dane do tabeli z LOAD DATA plik_we poprzez podanie nazwy kolumn:

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; 

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

+1

było zdrowego rozsądku, aby utworzyć tabela first.and również „plik_we obciążenie "ma tylko 4 kolumny, tj. kolumna doładowania nie będzie wypełniać – sourcecode

+0

Jeśli którekolwiek z twoich nazw pól zawierają kropki, musisz je otoczyć tylnymi odskokami. – shacker

+0

jest zwiększany, ale nie jest zamówieniem. I jak mogę złożyć zamówienie –

Powiązane problemy