这是用于同步的,其中后续查询倾向于涉及来自先前查询的结果的连接.
最有效的方法是什么?
我很谨慎地执行两次查询,但如果它被添加到查询缓存中可能会很快.另一种方法是将整个结果集存储到临时表中,然后从临时表中进行选择.这看起来也很浪费(我只需要临时表中的整数ID.)如果有一个SELECT INTO TEMP也返回结果,我会很高兴.
目前使用的技术是在客户端构造一个整数ID的数组,并在随后的IN查询中使用它.我希望有更高效的东西.
我猜它可以用存储过程完成?但是有没有办法呢?
解决方法 我认为你可以使用Postgres功能来实现这一功能,该功能允许在CTE中进行数据修改.例如,使用此功能的更典型的原因是删除表的记录,然后将它们插入到日志表中.但是,它可以适应这个目的.这是一种可能的方法(我手边没有Postgres来测试这个):with q as ( <your query here> ),t as ( insert into temptable(pk) select pk from q )select *from q;
通常,您将returns子句与数据修改查询一起使用,以捕获正在修改的数据.
总结以上是内存溢出为你收集整理的PostgreSQL返回选择结果并将它们添加到临时表中?全部内容,希望文章能够帮你解决PostgreSQL返回选择结果并将它们添加到临时表中?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)