В синтаксиса на тригера на Oracle нововмъкнатият запис се обозначава с :new
, а не new
(забележете дебелото черво). Освен това SET
е част от оператор за актуализиране, а не начин за задаване на стойности на полета - те се правят чрез прости присвоявания, но имайте предвид, че те се правят с :=
вместо =
.
И така, вашият тригер трябва да гласи:
CREATE OR REPLACE TRIGGER NumberOfBooks
BEFORE INSERT
ON book
FOR EACH ROW
BEGIN
IF :new.nobook < 10
THEN
:new.nobook := 10;
END IF;
END;