Home > Database > Mysql Tutorial > Oracle 触发器笔记

Oracle 触发器笔记

WBOY
Release: 2016-06-07 17:15:14
Original
897 people have browsed it

-Oracle 触发器笔记-执行的顺序是:#1. 执行before语句级的触发器,对于受语句影响的每一行:-- #2. 执行级触发器,执行DML语句-

create or replace trigger emp
--before 表示对操作前的触发器
-- after 表示对操作后的触发器

--每张表最多可建立12个触发器
--before inset
--before insert for each row
--after insert
--after insert for each row

--before uPdate
--before uPdate for each row
--after uPdate
--after uPdate for each row

--before uPdate
--before uPdate for each row
--after uPdate
--after uPdate for each row

--执行的顺序是:#1. 执行before语句级的触发器,,对于受语句影响的每一行:
-- #2. 执行级触发器,执行DML语句
--执行after行级的触发器
--#3. 执行 after语句级的触发器

  before delete on aaa  --删除操作前aaa表的触发器
 
  for each row --对表的每一行触发器执行一次。如果没有这一选项,则只对整个表执行一次。
declare

begin

     /*如果插入的任然是aaa表的话,会出现:第 1 行出现错误:
ORA-04091: 表 QUERY.AAA 发生了变化, 触发器/函数不能读它
ORA-06512: 在 "QUERY.EMP", line 4 (QUERY表示user,line表示行数,EMP表示触发器名称)
ORA-04088: 触发器 'QUERY.EMP' 执行过程中出错*/

  /*将修改前的数据插入到日志表aaa_tmp里去,以供监督使用*/
  insert into aaa_tmp(AID,ANAME,PRICE)
 
  values(:old.AID,:old.ANAME,:old.PRICE);--:old表示原来的数据,
                                         --:new表示插入的新数据                                  
end emp;

linux

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template