2011-01-11 11 views
5

は私が都市と呼ばれるテーブルがあります。のMySQLファイルのインポート(LOAD DATA LOCALのINFILE)

+------------+--------------+------+-----+---------+----------------+ 
| 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 |    | 
+------------+--------------+------+-----+---------+----------------+ 

を私は単純なファイル(単なるテストファイル)をインポートする必要があります。

"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" 

を私はこれを実行しますコマンド:

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

出力:

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

レコードが挿入されていないため、理由がわかりません。

アイデア?

ありがとうございます!

ジェイミー

答えて

15

ワークアウトしました。愚かな間違い。これに

LINES TERMINATED BY '\r\n' 

は、この変更しなければならなかった

1

:-)

LINES TERMINATED BY '\n' 

を私は同じ問題を抱えていたが、私はこれを試してみてください、最初の行を消去

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

今すぐ実行するとこのような書き込みは

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

そしてそれだけです。

それは私の仕事:あなたは私のMAC

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

は、私は、Mac上で同じ問題を持っていた、 はこれを試してみて、どのようなMac上で働いていたことは

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

Macは改行に改行を使用するため、'/r'

0

を使用している場合、D

+0

6年前から現在受け入れられている答えを効果的に再現しています。他人に役立つかもしれないあなたのものは何を追加しますか? – MTCoster

+0

Macで '/ n'の代わりに '/ r'を使用する理由の短い説明 –

+0

OS X 10.0のリリース以来、OS X(またはむしろmacOS)は改行文字として '\ r 'を使用していません2001年に([この質問を参照してください(http://superuser.com/questions/439440/did-mac-os-lion-switch-to-using-line-feeds-lf-n-for-line-breaks-instead -of)over – MTCoster

関連する問題