Oracle
 sql >> Datenbank >  >> RDS >> Oracle

SQL-Fehler – Trigger/Funktion sieht ihn möglicherweise nicht

Ein Trigger auf Anweisungsebene (d. h. ohne FOR EACH ROW -Klausel) aktualisiert immer alle Datensätze in der Zahlungstabelle, ich glaube nicht, dass das nötig ist. Verwenden Sie diesen Auslöser, um nur verwandte Produkte zu aktualisieren:

create trigger PROD_TOTAL
after insert ON Products
for each row
begin
    update Payments
    set ProdTotal = :new.ProdPrice * :new.ProdQuantity
    WHERE PayProdId = :new.ProdId ;
end;