一、實施復雜的安全性檢查
create or replace trigger mytrigger
before insert
on emp
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 checksal before update on emp for each row begin if :new.sal < :old.sal then raise_application_error(-20002,'漲薪后的薪水不能低於原來的薪水,漲薪后薪水:'||:new.sal||' 原來薪水:'||:old.sal); end if; end; /
三、數據庫基於值的審計
--創建表保存審計后的數據
create table empinfo(
info varchar2(300)
)
--創建觸發器
create or replace trigger audits
after update
on emp
for each row
begin
if :new.sal > 6000 then
insert into empinfo values(:new.empno||' '||:new.ename||' '||:new.sal);
end if;
end;
/
四、數據的備份
--直接創建emp表的備份表emp_back create table emp_back as select * from emp; create or replace trigger sync_sal after update on emp for each row begin update emp_back set sal = :new.sal where empno = :new.empno; end; /
--慕課網學習小結
