触发器的四个应用场景:
1.复杂的安全性检查:比如:禁止在非工作时间插入新员工
2.数据库的确认:比如:涨工资,工资应该越长越多的,如果越长越少就不叫涨工资了
3.数据库审计:比如:跟踪表上操作的记录,比如什么时间什么人操作了数据库,操作了表上的 记录是什么等
4.数据库的备份和同步:比如有两个数据库一个在北京一个在上海,在北京的数据库是主数据库,在上海的数据库是备用数据库,在主数据库中的数据被修改了以后可以通过触发器监听,如果被修改会将修改的数据传递给备份数据库,当主数据崩溃以后不影响数据的使用
触发器使用场景一:
复杂的安全性检查
禁止在非工作时间插入新员工
–周末:select to_char(sysdate,‘day’) from dual in (‘星期六’,‘星期日’);
–上班前,下班后:select to_number(to_char(sysdate,‘hh24’)) not between 9 and 18;
–不管插入10个员工还是1个员工,插入操作都只是对表操作一次,所以使用语句级触发器
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(-20007