POSTGRESQL вызывает проблемы - PullRequest
0 голосов
/ 06 ноября 2018

Написал этот код. Проблема с этим кодом в том, что он ничего не делает. Должен обновить OTB_Name, когда я обновляю таблицу, но ничего не происходит.

Может кто-нибудь сказать мне, где моя проблема?

CREATE OR REPLACE FUNCTION public.demand_lom_ar5_tracker() 
RETURNS trigger AS $demand_lom_ar5_tracker$
BEGIN
    -- INSERT
    IF (TG_OP = 'INSERT') THEN
        UPDATE public.demand_lom_ar5
            SET "OTB_Name" = ar5_area_otb."OTB_Name"
            FROM mapinfo.public.ar5_area_otb
            WHERE ST_Contains (mapinfo.public.demand_lom_ar5."SP_GEOMETRY", mapinfo.public.ar5_area_otb."SP_GEOMETRY");
        RETURN NULL;
    -- UPDATE
    ELSIF (TG_OP = 'UPDATE') THEN
        UPDATE public.demand_lom_ar5
            SET "OTB_Name" = ar5_area_otb."OTB_Name"
            FROM mapinfo.public.ar5_area_otb
            WHERE NEW."MI_PRINX" = OLD."MI_PRINX" and ST_Contains (mapinfo.public.demand_lom_ar5."SP_GEOMETRY", mapinfo.public.ar5_area_otb."SP_GEOMETRY");
        RETURN NULL;
    END IF;
END;

$demand_lom_ar5_tracker$ LANGUAGE plpgsql; 

--apply the trigger:
DROP TRIGGER IF EXISTS trg_demand_lom_ar5_tracker 
  ON public.demand_lom_ar5;

CREATE TRIGGER trg_demand_lom_ar5_tracker 
  AFTER INSERT OR UPDATE ON public.demand_lom_ar5
  FOR EACH ROW EXECUTE PROCEDURE public.demand_lom_ar5_tracker();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...