Как я могу создать триггер, который запускается обновлением, а затем проверяет, есть ли определенные значения в обновленной таблице, а другая таблица все еще пуста. Если нет, следует изменить значение в третьей таблице на sysdate.
Мой код:
CREATE OR REPLACE TRIGGER TRG_UPDATE_VALUE
BEFORE UPDATE OF column1
ON table1
REFERENCING OLD AS OLD NEW AS NEW
for each row
DECLARE
value_one_null int;
value_two_null int;
BEGIN
SELECT COUNT(table1_id)
INTO value_one_null
FROM table1
WHERE column1 IS NULL
AND column2 = :NEW.column2;
SELECT COUNT(table2_id)
INTO value_two_null
FROM table2
WHERE column1 IS NULL
AND column2 = :NEW.column2;
IF (value_one_null = 0 AND value_two_null = 0)
THEN
UPDATE table3 SET table3.column1 = sysdate
WHERE table3_id = :NEW.column2;
END IF;
END;
Компиляция триггера работает. Но если я пытаюсь обновить таблицу 1, это приводит к ошибкам ORA-04091, ORA-06512, ORA-04088
. Я абсолютный новичок в PL / SQL, поэтому было бы замечательно, если бы кто-то мог помочь мне исправить эта ошибка.