2011-01-11 25 views
5

Tôi có một bảng gọi là thành phố:MySql tập tin nhập khẩu (LOAD DATA INFILE LOCAL)

+------------+--------------+------+-----+---------+----------------+ 
| Field  | Type   | Null | Key | Default | Extra   | 
+------------+--------------+------+-----+---------+----------------+ 
| id   | bigint(20) | NO | PRI | NULL | auto_increment | 
| country_id | mediumint(9) | NO | MUL | NULL |    | 
| region_id | bigint(20) | NO | MUL | NULL |    | 
| city  | varchar(45) | NO |  | NULL |    | 
| latitude | float(18,2) | NO |  | NULL |    | 
| longitude | float(18,2) | NO |  | NULL |    | 
| timezone | varchar(10) | NO |  | NULL |    | 
| dma_id  | mediumint(9) | YES |  | NULL |    | 
| code  | varchar(4) | YES |  | NULL |    | 
+------------+--------------+------+-----+---------+----------------+ 

Tôi có một tập tin đơn giản (chỉ cần một file test) để nhập khẩu:

"id","country_id","region_id","city","latitude","longitude","timezone","dma_id","code" 
42231,1,833,"Herat","34.333","62.2","+04:30",0,"HERA" 
5976,1,835,"Kabul","34.517","69.183","+04:50",0,"KABU" 
42230,1,852,"Mazar-e Sharif","36.7","67.1","+4:30",0,"MSHA" 
42412,2,983,"Korce","40.6162","20.7779","+01:00",0,"KORC" 
5977,2,1011,"Tirane","41.333","19.833","+01:00",0,"TIRA" 
5978,3,856,"Algiers","36.763","3.051","+01:00",0,"ALGI" 
5981,3,858,"Skikda","36.879","6.907","+01:00",0,"SKIK" 
5980,3,861,"Oran","35.691","-0.642","+01:00",0,"ORAN" 

tôi chạy này lệnh:

LOAD DATA LOCAL INFILE 'cities_test.txt' INTO TABLE city FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES; 

Output:

Query OK, 0 rows affected (0.00 sec) 
Records: 0 Deleted: 0 Skipped: 0 Warnings: 0 

Không có hồ sơ nào được chèn vào và tôi không biết tại sao.

Bất kỳ ý tưởng nào?

Cảm ơn!

Jamie

Trả lời

15

Làm việc. Lỗi lầm ngớ ngẩn.

Đã phải thay đổi điều này:

LINES TERMINATED BY '\r\n' 

Để này:

LINES TERMINATED BY '\n' 

:-)

1

tôi đã cùng một vấn đề, nhưng tôi cố gắng này, xóa hàng đầu tiên

`("id","country_id","region_id","city,"latitude","longitude", 
        "timezone","dma_id","code")` in your file to import. 

Bây giờ, khi bạn chạy comand viết như thế này

mysql> LOAD DATA LOCAL 
    INFILE 'cities_test.txt' 
    INTO TABLE city FIELDS TERMINATED BY ',' 
    LINES TERMINATED BY '\n'; 

Và đó là tất cả.

Nó làm việc cho tôi: D

0

tôi đã cùng một vấn đề trên mac, Hãy thử điều này nếu bạn đang sử dụng mac

LOAD DATA INFILE 'sqlScript1.txt' INTO TABLE USER 
FIELDS TERMINATED BY ',' LINES STARTING BY '\r'; 
0

Đối với tôi, những gì đã làm việc trên một mac là

LOAD DATA LOCAL 
    INFILE 'cities_test.txt' 
    INTO TABLE city FIELDS TERMINATED BY ',' 
    LINES TERMINATED BY '\r'; 

Kể từ khi máy Mac sử dụng trở lại vận chuyển cho ngắt dòng của mình, bạn phải sử dụng '/r'

+0

Điều này có hiệu quả phục hồi câu trả lời hiện đang được chấp nhận từ sáu năm trước. Bạn thêm gì có thể hữu ích cho người khác? – MTCoster

+0

Giải thích ngắn gọn lý do tại sao người ta phải sử dụng '/ r' thay vì '/ n' trên máy mac –

+0

OS X (hoặc thay vì macOS) đã không sử dụng '\ r' làm ký tự dòng mới kể từ khi bản phát hành OS X 10.0 trở lại vào năm 2001 (xem [câu hỏi này] (http://superuser.com/questions/439440/did-mac-os-lion-switch-to-using-line-feeds-lf-n-for-line-breaks-instead -trên) trên Super User) – MTCoster

Các vấn đề liên quan