Heim > Datenbank > MySQL-Tutorial > Oracle 触发器笔记

Oracle 触发器笔记

WBOY
Freigeben: 2016-06-07 17:15:14
Original
896 Leute haben es durchsucht

-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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage