微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

plpgsql – PostgreSQL临时表的范围是什么?

我已经google了很多,我有相当不错的阅读理解,但我不明白这个脚本是否可以在我的postgres / postgis框中的多个线程中工作.这是代码
Do
$do$
DECLARE
    x RECORD;
    b int;       
    begin
    create temp table geoms (id serial,geom geometry) on commit drop;

    for x in select id,geom from asdf loop   

        truncate table geoms;
        insert into geoms (geom) select someGeomfield from soMetable where st_intersects(somegeomfield,x.geom);

        ----do something with the records in geoms here...and insert that data somewhere else

    end loop;
end;
$do$

那么,如果我在多个客户端(从Java调用)中运行它,那么geoms临时表的范围会导致问题吗?如果是这样,在PostGres中解决这个问题的任何想法都会有所帮助.

谢谢

你将遇到一个微妙的陷阱,这就是为什么我还没准备好宣布它“安全”的原因是范围是每个会话,但是人们常常忘记丢弃表(因此它们会断开连接).

我认为如果你在完成它之后不需要你的函数后显式删除临时表,你会好得多.这将防止因尝试在同一事务中运行该函数两次而产生的问题. (在提交时你正在放弃)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐