Vì bạn không đăng lỗi nên tôi phải đoán. Tôi đoán rằng vấn đề là name
đó không phải là một định danh hợp lệ trong ngữ cảnh này. Bạn cần tham chiếu :new.name
hoặc :old.name
. :old.name
sẽ là NULL
trên một chèn trong khi :new.name
sẽ là NULL
đang xóa, vì vậy tôi cho rằng bạn muốn một cái gì đó giống như
CREATE OR REPLACE TRIGGER add_del
BEFORE INSERT OR DELETE ON persons
FOR EACH ROW
BEGIN
IF INSERTING THEN
INSERT INTO logs (who, what) VALUES (:new.name, 'Insert into persons');
ELSE
INSERT INTO logs (who, what) VALUES (:old.name, 'Delete from persons');
END IF;
END;