MySQLへダミーデータを作成する
はじめに
MySQLに対してロードの検証を行うためにダミーデータを用意する必要が
あったので、ダミーデータの取得からMySQLへの挿入までの流れをメモしておく。
バージョンは5系。
ダミーデータはここで手に入れた。
- (日本語のデータ(〜5000件)) 疑似個人情報データ生成サービス
- (英語のデータ) generatedata.com
今回は疑似個人情報データ生成サービスからcsv形式でダウンロードし、
それをMySQLへ挿入することにした。
ダミーデータの作成
使い方は簡単ではじめに下記のような条件が選べるので、必要なものを選び
生成開始を押すだけ。
次にこのような画面が出てくるので、CSV形式でダウンロード。
とりあえずhogehoge.csvとしておく。
MySQLへ挿入
mysqlクライアントを開いて、下記のスクリプトでテスト用テーブルを作成。
mysql> CREATE TABLE test.sample(id INT,name VARCHAR(30),kana_name VARCHAR(30),sex VARCHAR(10),tel VARCHAR(20),birth VARCHAR(30));
そして、CSVファイルをMySQLに挿入するためにはLOCAL DATA FILE ~を使う。
「TERMINATED BY ','」でCSVの文字列を「,」で区切り、後述のカラムに挿入を行う。
「TERAMINATED BY '\t'」とすれば、タブで区切ることもできるので、覚えておく。
mysql> LOAD DATA LOCAL INFILE 'hogehoge.csv' INTO TABLE sample FIELDS TERMINATED BY ',' (id,name,kana_name,sex,tel,birth);
こんな感じ。
作成したCSVでは一行目に項目が入っていて、「,」で区切られていないため、利用する際は削除してください。
おまけにPHPから挿入するスクリプトも書いてみた。
PHPで書くときにはPDOオブジェクトを呼び出す際に、
array(PDO::MYSQL_ATTR_LOCAL_INFILE => true)
を設定する必要があリ、この記述でLOAD LOCAL INFILE を有効にする。
これなしでやると
PHP Warning: PDO::exec(): LOAD DATA LOCAL INFILE forbidden in /var/www/html/database.php on line 13
というようなエラーが出る。
以上。