LoginSignup
21
18

More than 5 years have passed since last update.

LOAD DATA INFILEで気を付けること

Last updated at Posted at 2017-01-26

忘備録として


環境
  • MySQL 5.6.22
  • Windows10 64bit

①改行コードに気をつけろ

LOAD DATA INFILEはデフォルトでは改行コードをLFとして扱う
データを作成したソフト等によって改行コードを指定してあげるのが良い
たとえば、Excelで作成するとデフォルトはCR+LF

CR+LF
LOAD DATA INFILE 'hoge.csv' INTO TABLE `scheme`.`table` FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n';

改行コードがCRならば、'r'
改行コードがLFならば、'n'

参考

追記

csvファイルをsakuraエディタで編集していて、普段は上記コードでインポートできていたはずが、
なぜか一番上の一行しか読み込まれないという現象が起こりました。
まさかと思って改行コードをCR+LFに指定して保存してみると、案の定無事インポートできました。
改行コードが変わってしまっていたんですね…いつのまに…

②LOAD DATA INFILEのパスには日本語を使うな

簡単なことだしそもそもパスに日本語使うなって話なんですが…
クライアント側に一時的に置いたcsvファイルでLOAD DATA LOCAL INFILEしようとしたときに、
お恥ずかしながら1時間ほど無駄にしました。

ダメな例
LOAD DATA LOCAL INFILE 'C:/Users/name/Desktop/ほげ/data.csv' INTO TABLE `scheme`.`table` FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n';
これでOK
LOAD DATA LOCAL INFILE 'C:/Users/name/Desktop/hoge/data.csv' INTO TABLE `scheme`.`table` FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n';
21
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
18