In de triggersyntaxis van Oracle wordt naar het nieuw ingevoegde record verwezen met :new
, niet new
(let op de dubbele punt). Bovendien, SET
is een onderdeel van een update-instructie, niet een manier om veldwaarden in te stellen - die worden gedaan door eenvoudige toewijzingen, maar merk op dat deze worden gedaan met :=
in plaats van =
.
Dus je trigger zou moeten luiden:
CREATE OR REPLACE TRIGGER NumberOfBooks
BEFORE INSERT
ON book
FOR EACH ROW
BEGIN
IF :new.nobook < 10
THEN
:new.nobook := 10;
END IF;
END;