mysqlのENCLOSED BYって何?
mysql5.6のリファレンスマニュアルを覗いてみます。
LOAD DATE INFILE構文
optionallyでENCLOSED BY ‘char’と記載があります。
LOAD DATA INFILEは、高速にテキストファイルからテーブルに行を読み取る。
TSVやCSVからMySQLにロードする方法なのね。
サンプルのコマンドを見てみましょう。
mysql> SET character_set_server= utf8mb4;
mysql> SET NAMES utf8mb4;
mysql> use databasename
mysql> LOAD DATA INFILE 'hoge.CSV' INTO TABLE foo
-> FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
-> ( @dummy, @dummy, @dummy, @dummy, @dummy, @dummy)
-> SET created_at = CURRENT_TIMESTAMP;
LOAD DATA INFILE でファイルを読み込んで、INTO TABLEで指定したデータベースに値を入れてますね。
まずデータを用意します。配当利回りトップのデータにしておきましょう。dividen.csvで保存します。
/home/vagrantにdividen.csvを保存します。
/home/vagrant/dividen.csvの状態
続いて、databaseを作ります。
mysql> create database equity;
mysql> use equity;
Database changed
mysql> create table dividen(
-> code int,
-> name varchar(30),
-> yeild float
-> );
Query OK, 0 rows affected (0.29 sec)
コードはこれでいいのかな?
LOAD DATA INFILE '/home/vagrant/dividen.csv' INTO TABLE dividen
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY ''
(code, name, yeild)
では行きましょう。
mysql> LOAD DATA INFILE '/home/vagrant/dividen.csv' INTO TABLE dividen
-> FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY ''
-> (code, name, yeild);
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
なにいいいいいいいいいいいいいいいいいい
だが、使い方は解った^^