关闭

oracle触发器详解

722人阅读 评论(0) 收藏 举报
l数据库触发器是一个与表相关联的、存储的PL/SQL程序。每当一个特定的数据操作语句(Insert,update,delete)在指定的表上发出时,Oracle自动地执行触发器中定义的语句序列。
l
l触发器的类型
语句级触发器
在指定的操作语句操作之前或之后执行一次,不管这条语句影响了多少行。
行级触发器(FOREACH ROW
触发语句作用的每一条记录都被触发。在行级触发器中使用oldnew伪记录变量, 识别值的状态。

   CREATE  [or REPLACE] TRIGGER  触发器名

   {BEFORE | AFTER}

   {DELETE | INSERT | UPDATE [OF列名]}

   ON  表名

   [FOR EACH ROW [WHEN(条件) ] ]

   PLSQL

限制非工作时间向数据库插入数据

create or replace
trigger insertEmp
before insert on emp
declare
begin
 if  to_char(sysdate,'day') in ('星期六') or to_number(to_char(sysdate,'hh24')) between 18 and 24
   then
       raise_application_error(-20001,'非工作日');
  end if;
end;


确认数据(检查emp表中sal的修改值不低于原值)

create or replace trigger updateemp
  before update on emp  
  for each row
declare
  -- local variables here
begin
  if:new.sal<:old.sal then
    raise_application_error(-20001,'更改的值不能小于眼有的值');
    end if;
end updateemp;



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:466471次
    • 积分:5475
    • 等级:
    • 排名:第5037名
    • 原创:165篇
    • 转载:6篇
    • 译文:0篇
    • 评论:24条
    最新评论