Я пытаюсь создать триггер, который копирует значение из одного столбца («нотубы» в другой («notubesleft») той же таблицы при добавлении новой строки. . скомпилирован правильно, но когда я вставить новую строку, он выдает ошибкуSQL-скрипт правильно компилируется, но вызывает ошибку
Мой триггер:
create or replace TRIGGER NOTUBESLEFT_INSERT_TRIGGER
AFTER INSERT ON SAMPLES FOR EACH ROW BEGIN
update samples
set notubesleft = (select notubes from samples where sampleid = :new.sampleid);
END;
при попытке совершить новую строку, я получаю ошибку:
One error saving changes to table "APEX_WS_PROMETHEUS"."SAMPLES":
Row 10: ORA-04091: table APEX_WS_PROMETHEUS.SAMPLES is mutating, trigger/function may not see it
ORA-06512: at "APEX_WS_PROMETHEUS.NOTUBESLEFT_INSERT_TRIGGER", line 2 ORA-04088: error during execution of trigger 'APEX_WS_PROMETHEUS.NOTUBESLEFT_INSERT_TRIGGER'
ORA-06512: at line 1
Я прошу нового q потому что я мог найти решения о том, как структурировать PL/SQL-код триггера, но я не могу понять, почему он не работает.
Спасибо.
Почему вы пытаетесь сделать это с помощью триггера после-вставки? –
Поскольку я думал, что мне сначала нужно вставить значения в таблицу, прежде чем использовать их для заполнения другого столбца. Это мой первый триггер. – Matte