sql >> Databáze >  >> RDS >> Oracle

Spouštěče prevence

Máte datum narození. Takže musíte určit, že datum narození je minimálně o šestnáct let dříve než dnes. Existují různé způsoby, jak toho dosáhnout; zde je jeden používající intervalový literál.

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; 

Tento spouštěč také kontroluje aktualizace, aby se zabránilo následným změnám, které zneplatní studenta.

Název spouštěče students_biur je pouze konvence, kterou používám:název tabulky s příponou označující *B*efore *I*insert *U*pdate pro každý *R*ow.

RAISE_APPLICATION_ERROR je standardní postup pro vyvolání uživatelem definovaných výjimek se zprávou. Zjistit více.

Oracle si vyhrazuje rozsah -20999 až -20000 pro uživatelem definované chyby; jakékoli jiné číslo může kolidovat s výjimkou definovanou oraclem.




  1. Jak zalomit dlouhé řádky textu ve výsledcích SQLite

  2. Index on Timestamp:Funkce ve výrazu indexu musí být označeny jako IMMUTABLE

  3. zadáním správného uživatelského jména a hesla získáte ORA-01017:neplatné uživatelské jméno/heslo; přihlášení odepřeno

  4. Událost čekání:změna velikosti asynchronního deskriptoru