SQL-触发检查每个学生的日期插入

问题描述 投票:0回答:1

我正在尝试创建一个触发器,以检查我要插入的日期是否大于表中每个学生的日期。该控件只需要位于ID和DATE。

STUDENT_EXAMS

id_student subject    mark        date_exam
1          Chemistry  6          'May-05-2020'
2          Maths      7          'May-01-2020'

合法插入

insert into STUDENT_EXAMS (id_student, subject, mark, date_exam)
values (1, 'History', 8, 'May-06-2020');

insert into STUDENT_EXAMS (id_student, subject, mark, date_exam)
values (2, 'Biology', 8, 'May-05-2020');

ILLEGITIMATE INSERT

insert into STUDENT_EXAMS (id_student, subject, mark, date_exam)
values (1, 'History', 8, 'May-04-2020');

insert into STUDENT_EXAMS (id_student, subject, mark, date_exam)
values (2, 'Biology', 10, 'Apr-30-2020');

这是我尝试创建的触发器,但是它不起作用,我也不知道如何在每个ID_STUDENT上插入控件。

create or replace trigger check_date
before insert on STUDENT_EXAM
for each row
begin
    if (:new.date_exam > :old.date_exam) then
        insert into STUDENT_EXAM (id_student, subject, mark, date_exam)
        values (:new.id_student, :new.subject, :new.mark, :new.date_exam); 
end if;
end;
sql oracle plsql triggers database-trigger
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.