LoginSignup
3
3

More than 5 years have passed since last update.

一度のSQLで大量の未使用IDを取得する

Last updated at Posted at 2014-08-31

大量のデータをインサートする際、パフォーマンス的な関係でメモリ上でゴニョゴニョしたものをPrepared statement使ってぶち込みたかったんだけど、
関連テーブルのデータを作るため、インサート前にIDが欲しかったので、ちょっと考えてみた

WITH RECURSIVE r AS (
  SELECT nextval('a_id_seq') AS id, 1 AS count

  UNION ALL

  SELECT nextval('a_id_seq'), count + 1
  FROM r
  WHERE count < 40000
)
SELECT id FROM r;

なにもないところから40000件のIDを生成することに成功しました
RECURSIVE 便利ー

追記

generate_seriesならもっと簡単にできました。

SELECT nextval('a_id_seq') FROM generate_series(1, 40000);
3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3