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