數據庫觸發器是一個與表相關聯的,存儲的PL/SQL 語句。每當一個特定的數據操做語句(insert update delete)在指定的表上發出時,Oracle自動執行觸發器中定義的語句序列。數據庫
觸發器的應用場景以下:安全
CREATE [OR REPLACE] TRIGGER trigger_name {BEFORE | AFTER } {INSERT | DELETE | UPDATE [OF column [, column …]]} [OR {INSERT | DELETE | UPDATE [OF column [, column …]]}...] ON [schema.]table_name | [schema.]view_name [REFERENCING {OLD [AS] old | NEW [AS] new| PARENT as parent}] [FOR EACH ROW ] [WHEN condition] PL/SQL_BLOCK | CALL procedure_name;
其中:app
/* 實施複雜的安全性檢查 禁止在非工做時間插入新員工 週末:to_char(sysdate,'day') in ('星期六','星期日') 上班前和下班後:to_number(to_char(sysdate,'hh24')) not between 9 and 18 */ create or replace trigger securityemp before insert on emp begin if to_char(sysdate,'day') in ('星期六','星期日') or to_number(to_char(sysdate,'hh24')) not between 9 and 18 then --禁止insert操做 拋出異常 raise_application_error(-20001,'禁止在非工做時間插入新員工'); end if; end; /