У меня есть этот триггер:
create or replace trigger t_calctotal
after insert or update on item_fornecimento
REFERENCING NEW AS NEW OLD AS OLD
for each row
begin
if inserting then
dbms_output.put_line(' On Insert');
update fornecimento f set f.total_enc_fornec = f.total_enc_fornec +:NEW.prec_total_if where f.id_fornecimento = :NEW.id_fornecimento;
else
dbms_output.put_line(' On Update');
update fornecimento f set f.total_enc_fornec = f.total_enc_fornec - :OLD.prec_total_if +:NEW.prec_total_if where f.id_fornecimento = :NEW.id_fornecimento;
end if;
end;
По сути, я хочу обновить общую стоимость заказа (fornecimento), суммируя все элементы в item_fornecimento; Я должен относиться к этому по-другому, если это вставка, если это обновление.
Триггер компилируется и все и даже работает один раз, но это был единственный. Я вставил или обновил свои prec_total_if в item_fornecimento в sqldeveloper, но общая сумма заказа (fornecimento) все еще не изменилась: (.
Если это важно, мой f.total_enc_fornec будет нулевым, пока не будет заменен значением, вставленным этим триггером; он печатает выходные данные, но, похоже, не удается обновить.