【发布时间】:2019-10-23 08:50:46
【问题描述】:
我正在尝试创建一个我遇到问题的触发器。 触发器的工作是阻止项目插入。 这里有 2 个学生和科目表。 当学生没有注册该科目时,我必须检查并防止插入,如果他有,他将从下学期开始,所以目前他没有在那里注册。 请帮我解决这个问题。
CREATE OR REPLACE TRIGGER check_student
BEFORE INSERT ON subject
FOR EACH ROW
BEGIN
IF :new.student_no
AND :new.student_name NOT IN (
SELECT DISTINCT student_no,student_name
FROM student
)
OR :new.student_enrollment_date < (
select min(enrolment_date)
from student
where
student.student_name = :new.student_name
and student.student_no = :new.guest_no
group by student.student_name , student.student_no
)
AND :new.student_name = (
select distinct student_name
from student
)
AND :new.student_no = (
select distinct student_no
from student
)
THEN
raise_application_error(-20000, 'Person must have lived there');
END IF;
END;
/
当学生没有注册该科目时,我必须检查并防止插入,如果他有,他将从下学期开始,所以目前他没有在那里注册。
请帮帮我。
【问题讨论】:
-
你想要的输出是什么?
标签: sql oracle plsql database-trigger