Имате дата на раждане. Така че трябва да определите, че DoB е поне шестнадесет години преди днес. Има различни начини да направите това; ето един, използващ интервален литерал.
create or replace trigger students_biur
before insert or update on students for each row
begin
if (:new.student_birthdate + INTERVAL '15' YEAR ) < sysdate
then
raise_application_error( -20000, 'This student is too young be registered.');
end if;
end;
Този тригер също така проверява за актуализации, за да предотврати последващи промени, които невалидират ученик.
Името на тригера students_biur
е просто конвенция, която използвам:името на таблицата с суфикс, указващ *B*преди *I*nsert *U*pdate за всеки *R*ow.
RAISE_APPLICATION_ERROR е стандартна процедура за хвърляне на потребителски дефинирани изключения със съобщение. Открийте повече.
Oracle запазва диапазона от -20999 до -20000 за дефинирани от потребителя грешки; всяко друго число може да се сблъска с дефинирано от оракул изключение.