読者です 読者をやめる 読者になる 読者になる

Web言語のお勉強~ど素人が往く~

かつてVB6を1年くらい触った事があるだけのど素人がWeb言語に挑戦します。勉強結果を随時発表します。

LOCALのMySQLにコマンドラインからCSVファイルを読み込む方法


昨日の方法は間違い

昨日はコマンドラインからローカルのMySQLにCSVファイルをインポートする方法を試しました。
「max_allowed_packet」を1MBから32MBに拡張して実行しました。

結果は失敗

ファイルサイズが120MBとかあるの忘れてました(^^;

max_allowed_packet = 200M

として実行!

成功した!

と、思いやテーブルには何も入っていません(;_;)
調べてみると、SQL文が書かれた「*.sql」ファイル用のコマンドだったようです。
「source filepath」のコマンドは。

正しいコマンド

ちょっと探すと正しいコマンドが見つかりました。

【MySQL】CSVファイルをインポートするコマンド - Qiita


# TERMINATED BY 区切り文字
# ENCLOSED BY 囲み文字
LOAD DATA LOCAL INFILE '/tmp/import.csv' INTO TABLE table_name FIELDS TERMINATED BY ',' ENCLOSED BY '"'

だいぶん長いですが、確かにこのくらいはCSVからのインポートなら必要なのかも。
「LOAD DATA LOCAL INFILE」でファイルを指定して、「INTO TABLE」で対象テーブルを指定。
「IELDS TERMINATED BY ',' ENCLOSED BY '"'」の部分で区切り文字や囲み文字を明示。

このコマンドでMySQLにコマンドラインから実行すると・・・

f:id:MoneyReport:20150414175518p:plain

大成功!

12万レコードのインポートに成功しました(^-^)w