この記事について
| 環境 | 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 ~
