-- 建立觸發器的基本命令 create or replace trigger td after delete on ss begin dbms_output.put_line('刪除成功'); end; -- 建立觸發器的基本命令 create or replace trigger dd after insert on ss for each row --沒有變量可去掉聲明 --declare begin dbms_output.put_line('成功插入數據'); end; -- 場景-:複雜的安全性檢查 --raise--拋出的數據庫的錯誤 --raise_application_error:拋出的是應用程的錯誤 區間(-20000 ,29999) create or replace trigger dg before insert or delete or update on ss begin if to_char(sysdate,'day') in ('星期六','星期日') or to_number(to_char(sysdate,'hh24')) not between 9 and 18 then raise_application_error(-20001,'非工做時間禁止操做數據庫'); end if; end; --數據確認 create or replace trigger fd before insert on scores for each row begin if :new.math < 0 or :new.chinese < 0 or :new.english < 0 then raise_application_error(-20002,'分數不能爲零'); end if; end; --實現審計功能 create table info( infomation varchar2(45) ); -- 不及格的學生所有信息插入info表 create or replace trigger ch after update on st for each row begin if :new.math < 60 or :new.english < 60 then insert into info values(:new.math||','||:new.english); end if; end; --數據備份和同步(此處用表演示) --建立備份表 create table st_copy as select * from test1; create or replace trigger std after update on test1 for each row begin --更新後表st的數據備份到表st_copy裏面 update st_copy set age=:new.age,name=:new.name where id = :new.id; end;