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

Eingefügten Wert mit Trigger ändern

In der Trigger-Syntax von Oracle wird auf den neu eingefügten Datensatz mit :new verwiesen , nicht new (beachten Sie den Doppelpunkt). Zusätzlich SET ist ein Teil einer Update-Anweisung, keine Möglichkeit, Feldwerte zu setzen - diese werden durch einfache Zuweisungen gemacht, aber beachten Sie, dass diese mit := gemacht werden statt = .
Ihr Trigger sollte also lauten:

CREATE OR REPLACE TRIGGER NumberOfBooks
    BEFORE INSERT
    ON book
    FOR EACH ROW
BEGIN
    IF :new.nobook < 10
    THEN
        :new.nobook := 10;
    END IF;
END;