2017-07-10 19 views
0

specsという名前のmysqlテーブルを作成しました。このテーブルにcsvファイルをインポートします。「FIELDS TERMINATED BY」と「LINES TERMINATED BY」の問題点は何ですか?

CREATE TABLE specs (
    `Id` INT NOT NULL, 
    `Brand` VARCHAR(40) NOT NULL, 
    `Horsepower` INT NOT NULL, 
    `Range` INT NOT NULL, 
    PRIMARY KEY (Id) 
); 

CSVデータは、以下の

ID\Brand\Horsepower\Range 
1\Mercedes Benz\237\634 
2\Audi\345\567 
3\Ford\190\456 
4\BMW\278\547 
5\Toyota\123\364 
6\Fiat\90\289 
7\Daihatsu\120\450 
8\Jeep\500\670 
9\Seat\119\289 
10\Mitsubishi\78\410 

のように見え、これは私がデータをインポートする方法ですが、テーブルがゼロで満たされています。問題はどこですか?私は、この問題はFIELDSとLINES BY BY TERMINATED BYで何かと思っています。

LOAD DATA LOCAL INFILE '/Users/anilyelin/Desktop/cars.csv' 
INTO TABLE specs 
FIELDS TERMINATED BY '\\' 
LINES TERMINATED BY '\n' 
IGNORE 1 ROWS 

出力は次のようになります。

mysql> select * from specs; 
+----+-------+------------+-------+ 
| Id | Brand | Horsepower | Range | 
+----+-------+------------+-------+ 
| 1 |  |   0 |  0 | 
| 2 |  |   0 |  0 | 
| 3 |  |   0 |  0 | 
| 4 |  |   0 |  0 | 
| 5 |  |   0 |  0 | 
| 6 |  |   0 |  0 | 
| 7 |  |   0 |  0 | 
| 8 |  |   0 |  0 | 
| 9 |  |   0 |  0 | 
| 10 |  |   0 |  0 | 
+----+-------+------------+-------+ 
10 rows in set (0,00 sec) 
+0

間違いなく、バックスラッシュ '\'ではなく、他のシンボルを使用してください。 NO_BACKSLASH_ESCAPESが設定されている(おそらく)場合は、 'FIELDS TERMINATED BY '\''でしょう。 –

答えて

0

あなたは、パイプによって、あなたのフィールド区切り\を交換しようとする必要があります|

LOAD DATA LOCAL INFILE '/Users/anilyelin/Desktop/cars.csv' 
INTO TABLE specs 
FIELDS TERMINATED BY '|' 
LINES TERMINATED BY '\n' 
IGNORE 1 ROWS 
+0

これは機能しません。 – Anil

関連する問題