从很大的SELECT查询中插入

时间:2019-06-15 12:40:35

标签: postgresql sql-insert

我有以下INSERT:

INSERT INTO "Positions" 
(SELECT source_id, (r1.cd).x, (r1.cd).y, (r1.cd).z FROM 
  (SELECT source_id, stars_icrs2gcrs(ra, "dec", r_est) AS cd
   FROM "StarsWithDistance"
   )
 AS r1);

SELECT返回大约13亿行。如果我放一个LIMIT子句有效,那么Positions表会更新。因此,INSERT为书面作品。但是,如果我让它在所有行上进行,它会成功完成,但是Positions表为空。

处理这种INSERT的最好/最优雅的方法是什么?我在这里并不真正在意性能,此INSERT将执行一次,以后再也不会执行。显然,我不希望花数周时间!但是一天不是问题。按照现在的说法,这需要3个小时。

0 个答案:

没有答案