触发器是一种特殊的存储过程,下面是触发器的详细说明:
ORACLE 触发器 ORACLE产生数据库触发器的语法为: create [or replace] trigger 触发器名 触发时间 触发事件 on 表名 [for each row] pl/sql 语句 其中: 触发器名:触发器对象的名称。由于触发器是数据库自动执行 的,因此该名称只是一个名称,没有实质的用途。 触发时间:指明触发器何时执行,该值可取: before---表示在数据库动作之前触发器执行; after---表示在数据库动作之后出发器执行。 触发事件:指明哪些数据库动作会触发此触发器: insert:数据库插入会触发此触发器; update:数据库修改会触发此触发器; delete:数据库删除会触发此触发器。 表 名:数据库触发器所在的表。 for each row:对表的每一行触发器执行一次。如果没有这一选项,则只对整个表执行一次。 举例:下面的触发器在更新表auths之前触发,目的是不允许在xx修改表: create trigger auth_secure before insert or update or delete file://对整表更新前触发 on auths begin if(to_char(sysdate,'DY')='SUN' RAISE_APPLICATION_ERROR(-20600,'不能在xx修改表auths'); ( RAISE_APPLICATION_ERROR是函数,括弧内的,{dy}参数范围在-20000~20999之间,第二个 参数是字符串,大小在2k,超过的话,系统自动截断) end if; end |