Я пытаюсь создать триггер для следующих таблиц:Trigger на UPDATE для удаления строк в другой таблице в зависимости от третьей таблицы
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
извлекается из таблицы «второй».
Вот что я пробовал: функцию
Trigger:
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';
Trigger:
CREATE TRIGGER test_trigger
AFTER UPDATE
ON first
FOR EACH ROW
EXECUTE PROCEDURE pos_org_rel_refresh();
Так что у вас есть ответ? –