Trong cú pháp kích hoạt của Oracle, bản ghi mới được chèn vào được tham chiếu bởi :new
, không phải new
(chú ý dấu hai chấm). Ngoài ra, SET
là một phần của câu lệnh cập nhật, không phải là cách để đặt giá trị trường - những giá trị này được thực hiện bằng các phép gán đơn giản, nhưng lưu ý rằng chúng được thực hiện với :=
thay vì =
.
Vì vậy, trình kích hoạt của bạn nên đọc:
CREATE OR REPLACE TRIGGER NumberOfBooks
BEFORE INSERT
ON book
FOR EACH ROW
BEGIN
IF :new.nobook < 10
THEN
:new.nobook := 10;
END IF;
END;