Я пытаюсь создать триггер для следующих таблиц:
CREATE TABLE public.first (
userid bigint,
name varchar
);
CREATE TABLE public.second (
userid bigint,
companyid bigint
);
CREATE TABLE public.visibility_matrix (
name varchar,
companyid bigint
);
Каждый раз, когда строка в таблице first
обновляется, триггер должен принимать userid
и искать тот же userid
в таблице second
. Если он существует, удалите строку / строки из visibility_matrix
, где companyid
извлекается из таблицы 'second'.
Вот что я пробовал:
Функция триггера:
CREATE OR REPLACE FUNCTION pos_org_rel_refresh()
RETURNS trigger AS
$$
DECLARE
r Integer ;
BEGIN
IF TG_OP='UPDATE' THEN
DELETE FROM visibility_matrix where companyid=NEW.companyid;
RETURN NEW;
END IF;
END;
$$
LANGUAGE 'plpgsql';
Курок:
CREATE TRIGGER test_trigger
AFTER UPDATE
ON first
FOR EACH ROW
EXECUTE PROCEDURE pos_org_rel_refresh();