Du har ett födelsedatum. Så du måste fastställa att DoB är minst sexton år före idag. Det finns olika sätt att göra detta på; här är en som använder en bokstavlig intervall.
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;
Den här utlösaren söker också efter uppdateringar för att förhindra att efterföljande ändringar gör en elev ogiltig.
Triggernamnet students_biur
är bara en konvention jag använder:tabellnamnet med ett suffix som indikerar *Före *I*setter *U*uppdatering för varje *R*ow.
RAISE_APPLICATION_ERROR är en standardprocedur för att skicka användardefinierade undantag med ett meddelande. Få reda på mer.
Oracle reserverar intervallet -20999 till -20000 för användardefinierade fel; vilket annat nummer som helst kan krocka med ett orakeldefinierat undantag.