Mam dość google i mam dość przyzwoitego czytania ze zrozumieniem, ale nie rozumiem, czy ten skrypt będzie działał w wielu wątkach na moim polu postgres/postgis. Oto kod:Jaki jest zakres tabeli TemgreSQL?
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$
Tak, jeśli uruchomię to na więcej niż jednego klienta, zwany z Java, będzie zakres geoms temp tabeli przyczyna problemów? Jeśli tak, pomocne byłyby pomysły na rozwiązanie tego problemu w PostGres.
Dzięki
dziękuję Chris ... odkąd mam "przy zatwierdzeniu upuszczenia" na tabeli tymczasowej DDL, pomyślałem, że "zatwierdzenie" oznacza, że po zakończeniu połączenia tabela tymczasowa została odrzucona ... ale być bezpiecznym, słyszę cię. – markg
Zobowiązanie przy okazji oznacza faktyczne zatwierdzenie. Jeśli użyjesz 'begin', a następnie uruchomisz swoją funkcję dwa razy, przed wywołaniem' commit', to się nie powiedzie. To samo, jeśli w jakiś sposób zostanie wywołane dwa razy w tym samym zapytaniu. –