Как я могу обойти ограничения Oracle, не позволяющие подзапросы в триггерах.Oracle: Использование подзапроса в триггере
Вот пример триггера, который я пытаюсь создать, но не могу, потому что я не могу использовать подзапрос.
CREATE OR REPLACE TRIGGER trigger_w_subquery
AFTER UPDATE OR INSERT ON project_archiving
FOR EACH ROW WHEN (old.archiving_status <> new.archiving_status
AND new.archiving_status = 1
AND (SELECT offer FROM projects WHERE projnum = :new.projnum) IS NULL
)
BEGIN
INSERT INTO offer_log (offer, status, date)
VALUES (null, 9, sysdate);
END;
Отличные мысли думают одинаково :-) –
Просто предупреждение о том, что если вы используете вставки из нескольких таблиц (вставляя как в проект, так и в project_archiving), вы можете столкнуться с ошибкой мутирующей таблицы. Таким образом, предпочтительнее поставить логику, где находится исходная вставка, а не полагаться на триггер. –