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;