はじめに
SQLのtips記事です。
大量データを使ってテストしたい場合に実際に利用したSQLを紹介しています。
件数倍増SQL
0件のempテーブルの件数を増殖するSQLです。
2つ目のSQLを実行する毎に、データ件数が2件、4件、8件、、、と倍々で増えていきます。
INSERT INTO emp VALUES (1); -- 最初の1件
INSERT INTO emp SELECT id+(SELECT count(*) FROM emp) FROM emp; -- 実行毎に倍増する
その他データ作りに役立つこともある関数
- ROWNUM(Oracle)
取得件数毎に一意にナンバリングしてくれるので、採番で便利です
select rownum from emp
- mod
rownum等と組み合わせることで、余りの値でグルーピング・属性を分けることができます
SELECT id,mod(id,10) FROM emp
- trunc(dbms_random.value*n)
random関数は0~1の値を取るので、n倍(1000倍など)してtruncすることで特定の範囲の整数値をランダムに生成できます。
おわりに
これで突然「○○を満たす大量データを明日までに作って」と無茶ぶりされても
大丈夫なはず、です。お役に立てば幸いです。