Oracle 触发器的简单命令
2016-12-15 16:40 甘雨路 阅读(1210) 评论(0) 编辑 收藏 举报-- 创建触发器的基本命令 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;