sqlでダミーデータを作成する方法

INT型(1~10)

SELECT CEIL(RAND() * 10);

VARCHAR型

SELECT SUBSTRING(MD5(RAND()), 1, 64);

DATE(10/01から30日間の日付)

SELECT DATE_ADD('2015-10-01', INTERVAL 30 * RAND() DAY);

DATETIME(時間/秒数)

SELECT ADDTIME(CONCAT_WS(' ','2015-10-01' + INTERVAL RAND() * 30 DAY, '00:00:00'), SEC_TO_TIME(FLOOR(0 + (RAND() * 86401))));

以下、実際にテーブルを作成していきます。

テーブル作成

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

空のデータを作成

INSERT INTO item () VALUES (); --1行作成
INSERT INTO item (id) SELECT 0 FROM item; --2行になる
INSERT INTO item (id) SELECT 0 FROM item; --4行になる
INSERT INTO item (id) SELECT 0 FROM item; --8行になる
INSERT INTO item (id) SELECT 0 FROM item; --16行になる

空データにランダムに値を入れる

UPDATE item SET
  description = SUBSTRING(MD5(RAND()), 1, 30),
  price = CEIL(RAND() * 10000),
  created_at = ADDTIME(CONCAT_WS(' ','2015-01-01' + INTERVAL RAND() * 180 DAY, '00:00:00'), SEC_TO_TIME(FLOOR(0 + (RAND() * 86401))));

ちなみに大量のダミーデータを自動生成してくれるツールもあるみたいです。 リンクテキスト