我已经用谷歌搜索了很多,并且我有相当不错的阅读理解能力,但我不明白这个脚本是否可以在我的 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 中解决这个问题的想法都会有所帮助。
Thanks
不过,您会遇到一个微妙的陷阱,这就是为什么我还没有准备好声明它“安全”的原因是范围是每个会话,但人们经常忘记删除表(因此它们在断开连接时删除)。
我认为如果您不需要在函数之后使用临时表来在完成后显式删除它,那么您的情况会好得多。这将防止因尝试在同一事务中运行该函数两次而出现问题。 (提交时你会放弃)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)