[MySQL] 大量のテストデータを作成

テストデータ用のテーブル作成

mysql> CREATE TABLE item (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(10),
  description VARCHAR(30),
  price INT UNSIGNED,
  created_at DATETIME
);

テーブルに空データ挿入

mysql> INSERT INTO item () VALUES (); --1行作成
mysql> INSERT INTO item (id) SELECT 0 FROM item; --2行になる
mysql> INSERT INTO item (id) SELECT 0 FROM item; --4行になる
mysql> INSERT INTO item (id) SELECT 0 FROM item; --8行になる
mysql> INSERT INTO item (id) SELECT 0 FROM item; --16行になる
-- 20回繰り返すと100万行になる

空データに値を入れる

mysql> UPDATE item SET
  name = CONCAT('商品', id),
  description = SUBSTRING(MD5(RAND()), 1, 30),
  price = CEIL(RAND() * 10000),
  created_at = ADDTIME(CONCAT_WS(' ','2014-01-01' + INTERVAL RAND() * 180 DAY, '00:00:00'), SEC_TO_TIME(FLOOR(0 + (RAND() * 86401))));

参考

http://qiita.com/tayasu/items/c5ddfc481d6b7cd8866d