You're getting a copy of each ocean for each island with that island
removed, and only one gets back into the table. You probably want to remove
an union of all islands from each ocean.



UPDATE public."Ocean"

SET the_geom = coalesce(ST_Multi(ST_Difference("Ocean".the_geom, (select
ST_Union(the_geom) from "Islands" where ST_Intersects( "Ocean ".the_geom,
 b.the_geom))), the_geom);

On Tue, Aug 20, 2019 at 4:35 PM <paul.m...@lfv.se> wrote:

> Hi,
>
> I have a table with ocean polygons and would like to create holes in those
> polygons with an island layer (including island polygons).
>
> I’ve tried this:
>
>
>
> UPDATE public."Ocean"
>
> SET the_geom = ST_Multi(ST_Difference("Ocean".the_geom, b.the_geom))
>
> FROM "Islands" as b
>
> WHERE ST_Intersects( "Ocean ".the_geom,  b.the_geom)
>
> Postgresql reports  5 uppdates.
>
> But there are no holes in the ocean polygons, in the location of the
> islands.
>
>
>
> What are I’m doing wrong?
>
>
>
> Kind regards,
>
> Paul
> _______________________________________________
> postgis-users mailing list
> postgis-users@lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/postgis-users



-- 
Darafei Praliaskouski
Support me: http://patreon.com/komzpa
_______________________________________________
postgis-users mailing list
postgis-users@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/postgis-users

Reply via email to