Создание триггера с оверлейной операцией PostGIS
Задача - при добавлении точечного объекта в одной таблице определить, в пределах какого полигонального объекта другой таблицы точка находится. -- DROP FUNCTION public.process_realty_add(); CREATE OR REPLACE FUNCTION public.process_realty_add() RETURNS trigger AS $BODY$ BEGIN raise notice 'point trigger starts now: %', now(); SELECT gis_county.county, gis_county.state INTO NEW.t_county, NEW.t_state FROM gis_county WHERE ST_Intersects(NEW.geom, gis_county.geom); raise notice 'point trigger ends now: %', now(); RETURN NEW; END; $BODY$ LANGUAGE plpgsql VOLATILE COST 100; Триггер: -- DROP TRIGGER realty_add ON public.gis_realty; CREATE TRIGGER realty_add AFTER INSERT OR UPDATE ON public.gis_realty FOR EACH ROW EXECUTE PROCEDURE public.process_realty_add();