ランダムな整数データが大量に欲しかったので作ってみる。
今回はストアドプロシージャを使う。
1.テーブル定義
これはテキトーに作ればいい。
create table t1 (id int, score int);
2.ランダムデータを生成するINSERT文を用意
テキトーに作ればいいが、バルクインサートの方が速い。
これは手順3のストアドプロシージャで使う。
insert into t1 values (FLOOR(RAND() * 100000), FLOOR(RAND() * 100000)), (FLOOR(RAND() * 100000), FLOOR(RAND() * 100000)), (FLOOR(RAND() * 100000), FLOOR(RAND() * 100000)), (FLOOR(RAND() * 100000), FLOOR(RAND() * 100000)), (FLOOR(RAND() * 100000), FLOOR(RAND() * 100000));
3.ストアドプロシージャを設定する
今回はINSERT文を2000回実行する。
バルクインサートで1回実行するたびに5レコード増えるので、
合計1万レコードをインサートすることになる。
INSERT文のところと、@limitを好きなように編集すればOK。
以下をMySQLのコマンドラインに打ち込んでいく。
別にインデントとかはなくていい。
delimiter // CREATE PROCEDURE insert_random_data() BEGIN SET @limit = 2000; SET @pos = 0; WHILE @limit > @pos DO insert into t1 values (FLOOR(RAND() * 100000), FLOOR(RAND() * 100000)), (FLOOR(RAND() * 100000), FLOOR(RAND() * 100000)), (FLOOR(RAND() * 100000), FLOOR(RAND() * 100000)), (FLOOR(RAND() * 100000), FLOOR(RAND() * 100000)), (FLOOR(RAND() * 100000), FLOOR(RAND() * 100000)); SET @pos = @pos + 1; END WHILE; END // delimiter ;
4.実行
call insert_random_data();
おまけ.削除
DROP PROCEDURE insert_random_data;