我在下面的代码中遇到问题,这是 Oracle SQL 中使用的触发器:
CREATE OR REPLACE TRIGGER TRG_TUTOR_BLOCK
BEFORE INSERT OR UPDATE ON tutors
FOR EACH ROW
DECLARE
BEGIN
IF :new.tutorName = :old.tutorName
THEN
RAISE_APPLICATION_ERROR(-20101, 'A tutor with the same name currently exists.');
ROLLBACK;
END IF;
END;
/
此触发器用于防止用户在不同的记录中输入相同的导师姓名。
在我插入两条具有相同导师姓名的记录后,触发器不会阻止我插入它。有没有人可以告诉我这个编码有什么问题?以下是示例格式和插入值:
INSERT INTO tutors VALUES (tutorID, tutorName tutorPhone, tutorAddress, tutorRoom, loginID);
INSERT INTO tutors VALUES ('13SAS01273', 'Tian Wei Hao', '019-8611123','No91, Jalan Wangsa Mega 2, 53100 KL', 'A302', 'TianWH');