他のデータベースや、Excel等で作成したデータをMySQLへインポートしたいといった場合に使用します
前回作成したスキーマJavadevのテーブルnew_table1へインポートします。
インポートするcsvファイルを用意します
色々な文字が入ったものを用意しました。
ただし、このファイルの文字コードはUTF-8、改行コードはCR+LFとしています。
MySQL Command Line Client を起動します
パスワードを入力します
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
MySQLにはインポートできるディレクトリを制限しているので、適当なフォルダにcsvファイルを置いてインポートしようとするとこのエラーがでます。
そこで、次のコマンドを入力し、制限がかかっていないディレクトリを確認します
mysql> show variables like '%secure_file_priv%';
C:\ProgramData\MySQL\MySQL Server 8.0\Uploads\
であることが分かりましたので、ここに先ほどのcsvファイルを配置し
次のコマンドを入力します
mysql> LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/INPORT001.csv' INTO TABLE new_table1 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 ROWS;
インポートが実行されました
データが入っている事が確認できます
CSVファイルの項目に,,(値無しが)入っており、これをNullとして扱いたい場合、CSVファイルの,,を,\N,(Nは大文字)に置換すれば行けます
0 件のコメント:
コメントを投稿