大量のデータをインサートする際、パフォーマンス的な関係でメモリ上でゴニョゴニョしたものを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);