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
なにいいいいいいいいいいいいいいいいいい
だが、使い方は解った^^