Oracle
 sql >> Base de données >  >> RDS >> Oracle

Déclencheurs de prévention

Vous avez une date de naissance. Vous devez donc déterminer que le DoB est au moins seize ans avant aujourd'hui. Il existe différentes manières de procéder; en voici une utilisant un littéral d'intervalle.

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; 

Ce déclencheur vérifie également les mises à jour, pour éviter que des modifications ultérieures n'invalident un étudiant.

Le nom du déclencheur students_biur est juste une convention que j'utilise :le nom de la table avec un suffixe indiquant *B*avant *I*nsert *U*pdate pour chaque *R*ow.

RAISE_APPLICATION_ERROR est une procédure standard pour lancer des exceptions définies par l'utilisateur avec un message. En savoir plus.

Oracle réserve la plage -20999 à -20000 pour les erreurs définies par l'utilisateur; tout autre numéro peut entrer en conflit avec une exception définie par Oracle.