2012-12-29 31 views
8

Tôi muốn chèn cột ID vào bảng của mình và nhận dữ liệu của bảng này từ tệp văn bản. Ví dụ: tệp văn bản của tôi giống như sau:Giá trị ID tăng tự động của dữ liệu tải lên dữ liệu MySQL

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

và có khoảng 20 triệu hàng. Tôi muốn chèn dữ liệu này vào một bảng và bao gồm một cột giá trị ID tăng tự động cho nó. Tôi sẽ sử dụng "Load dữ liệu infile", nhưng tôi muốn tạo bàn của tôi như được chỉ ra dưới đây:

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

Làm thế nào tôi có thể tạo ra loại bảng sử dụng mysql (workbench)

Trả lời

0

này có thể làm cho 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) 

để tham khảo nhiều thấy this link

17

đầu tiên, tạo bảng với ID cột có tài sản tăng tự động:

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; 

thì bạn nên load dữ liệu vào bảng với dữ liệu tải infile bằng cách cho tên cột:

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; 

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

+1

đó là lẽ thường để tạo ra bảng cũng first.and các "tải infile "chỉ có 4 cột ieautoincrement cột sẽ không điền – sourcecode

+0

Nếu bất kỳ tên trường của bạn bao gồm thời gian, bạn sẽ cần phải bao quanh chúng với backticks. – shacker

+0

nó được tăng lên nhưng nó không phải là một đơn đặt hàng. Và làm thế nào tôi có thể làm cho một đơn đặt hàng –