sql >> Database teknologi >  >> RDS >> Oracle

Forebyggende udløser

Du har en fødselsdato. Så du skal fastslå, at DoB er mindst seksten år før i dag. Der er forskellige måder at gøre dette på; her er en, der bruger et interval-literal.

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; 

Denne trigger søger også efter opdateringer for at forhindre, at efterfølgende ændringer gør en elev ugyldig.

Udløsernavnet students_biur er bare en konvention, jeg bruger:tabelnavnet med et suffiks, der angiver *B*før *I*indsætter *U*opdatering for hver *R*ow.

RAISE_APPLICATION_ERROR er en standardprocedure til at sende brugerdefinerede undtagelser med en besked. Find ud af mere.

Oracle forbeholder sig området -20999 til -20000 for brugerdefinerede fejl; ethvert andet tal kan kollidere med en orakel-defineret undtagelse.




  1. hvordan man konfigurerer dvalekonfigurationsfil til sql-server

  2. Hvordan laver man en sikkerhedskopi af en enkelt tabel i en postgres-database?

  3. Sådan bestiller du efter dato i PostgreSQL eller Oracle

  4. Postgres:Hvordan konverteres en json-streng til tekst?