Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Gatilhos de prevenção


Você tem uma data de nascimento. Então você precisa determinar que o DoB é pelo menos dezesseis anos antes de hoje. Existem várias maneiras diferentes de fazer isso; aqui está um usando um literal de intervalo.
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; 

Esse acionador também verifica atualizações, para evitar que alterações subsequentes invalidem um aluno.

O nome do gatilho students_biur é apenas uma convenção que eu uso:o nome da tabela com um sufixo indicando *B*efore *I*nsert *U*pdate para cada *R*ow.

RAISE_APPLICATION_ERROR é um procedimento padrão para lançar exceções definidas pelo usuário com uma mensagem. Descubra mais.

A Oracle reserva o intervalo -20999 a -20000 para erros definidos pelo usuário; qualquer outro número pode colidir com uma exceção definida pelo oráculo.