【mysql】CSVをload dataするときに気をつけること

この記事について

環境mysql(xampp含む)
目的CSVをload dataするときのうっかりミスを防ぐ
結果改行コードLF・lines terminated明示・NULLは\N・Windowsでもパス区切りは「/」

つまずきポイント要約

  • 改行コードがCR+LFだと行の区切りが正しく伝わらずおかしなところでデータが分けられる
  • Windowsのxamppでもload data infileのパス区切りは「/」(スラッシュ)

mysqlにおいて、CSVをload dataするときに気をつけること。
うっかりミスを防ぐための自分用おぼえ書き。

1.CSVファイルの改行コードを必ず「LF(\n)」にする

「CR + LF」だと、行の区切りが正しく伝わらず、おかしなところでデータが分けられる。

また、データに改行を含まないときは、行の終わりを明示しておくとハマる可能性が減る。

load data local infile "/home/username/www/text.csv" into table テーブル名 fields terminated by ',' enclosed by '"' lines terminated by '\n'

2.NULLが怪しいと思ったら\Nに変えてみる

NULLは\Nで表すらしい。

3.Windows内のCSVファイルでもパスの区切りは「/」(スラッシュ)

通常Windowsのパスの区切りは\(バックスラッシュ)。
しかし、Windowsにインストールしたxamppのmysqlを利用する場合、CSVファイルのパス指定は「/」(スラッシュ)で行う。

コマンドプロンプトで指定

○ load data infile "C:/Users/username/Desktop/test.csv" into table ~
× load data infile "C:¥Users¥username¥Desktop¥test.csv" into table ~

関連記事

タイトルとURLをコピーしました