Oracle
 sql >> Base de données >  >> RDS >> Oracle

Modifier la valeur insérée avec le déclencheur

Dans la syntaxe du déclencheur d'Oracle, l'enregistrement nouvellement inséré est référencé par :new , pas new (notez le côlon). De plus, SET fait partie d'une instruction de mise à jour, pas un moyen de définir des valeurs de champ - celles-ci sont effectuées par de simples affectations, mais notez que celles-ci sont effectuées avec := plutôt que = .
Ainsi, votre déclencheur devrait indiquer :

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