Ich habe versucht, den folgenden Trigger zu erhalten, um den Preis basierend auf einem Diskontsatz zu aktualisieren, wenn dieser Tarif aktualisiert wird.Fehler beim Aktualisieren der Spalte mit Trigger in derselben Tabelle
create or replace trigger discount_change
before update on maintain
for each row
begin
if :NEW.discount_rate != :OLD.discount_rate
then
update maintain m
set m.discount_price = :NEW.discount_rate * :OLD.price
where m.m_id = :NEW.m_id;
end if;
end;
Da es sich um eine Übung, diese sind in der gleichen Tabelle (leider) und wenn ich versuche, dies zu tun, bin ich konsequent die Störung zu erhalten:
table %s.%s is mutating, trigger/function may not see it
Ich habe diese Foren wurden Kämmen auf der Suche nach der Antwort und soweit ich recherchiert habe, sollte dies nicht diesen Fehler werfen, da ich nichts aus dem Tisch auswähle. Was mache ich hier falsch?
Wunsch zu definieren ist, ich könnte, aber das ist eine Übung, in der wir Trigger praktizieren werden sollen zu. Ich weiß, warum die Gründe für den Fehler, aber ich kann immer noch nicht herausfinden, wie ich es umgehen kann. – Syzorr