Вот так я представляю себе искомый триггер:
Код: Выделить всё
CREATE TRIGGER enforce_topology
BEFORE INSERT OR UPDATE OF the_geom ON settlement_polygon
FOR EACH ROW
WHEN (EXISTS(ST_Intersects(NEW.the_geom, OLD.the_geom)
and NEW.gid <> OLD.giid
and not ST_Touches(NEW.the_geom, OLD.the_geom)))
EXECUTE PROCEDURE on insert restrict, on update restrict;
Код: Выделить всё
ERROR: syntax error at or near "on"
LINE 5: EXECUTE PROCEDURE on insert restrict, on update restrict;
^
********** Error **********
Хорошего (популярного) описания работы триггеров в Postgre/PostGIS, к сожалению, не нашёл, поэтому плохо представляю, какие основные команды используются в триггерах postgres. Если знаете такое - ткните пожалуйста.