复合触发器范例

create or replace trigger compound_trigger

for insert or update or delete on dept_x

compound trigger

before statement is

begin

dbms_output.put_line('1:before statement.');

end before statement;

before each row is

begin

dbms_output.put_line('2:before each row.');

end before each row;

after each row is

begin

dbms_output.put_line('3:after each row');

end after each row;

after statement is

begin

dbms_output.put_line('4:after statement.');

end after statement;

end;

/

select * from dept_x;

DEPTNO DNAME   LOC

---------- -------------- -------------

10 ACCOUNTING   NEW YORK

20 RESEARCH   DALLAS

30 SALES   CHICAGO

40 OPERATIONS   BOSTON

delete dept_x;

1:before statement.

2:before each row.

3:after each row

2:before each row.

3:after each row

2:before each row.

3:after each row

2:before each row.

3:after each row

4:after statement.

4 rows deleted.

复合触发器范例

create or replace trigger compound_trigger

for insert or update or delete on dept

compound trigger

before each row is

begin

if inserting then

if :new.dname is null then

:new.dname:='VDEDU';

END IF;

if :new.loc is null then

:new.loc:='china';

end if;

end if;

end before each row;

end;

/

drop trigger compound_trigger;删除触发器

创建一个日志表,记录dept表的DML操作

create table dept_log(logid number,type varchar2(50),logdate date,deptno number,dname varchar2(50),loc varchar2(50));

create sequence dept_log_seq;

create or replace trigger dept_update_trigger10

before insert or update or delete

on dept

for each row

begin

if inserting then

insert into dept_log(logid,type,logdate,deptno,dname,loc)

values(dept_log_seq.nextval,'insert',sysdate,:new.deptno,:new.dname,:new.loc);

elsif updating then

insert into dept_log(logid,type,logdate,deptno,dname,loc)

values(dept_log_seq.nextval,'update',sysdate,:new.deptno,:new.dname,:new.loc);

else

insert into dept_log(logid,type,logdate,deptno,dname,loc)

values(dept_log_seq.nextval,'delete',sysdate,:old.deptno,:old.dname,:old.loc);

end if;

end;

/

PLSQL复合触发器的更多相关文章

  1. 【PLSQL】触发器trigger类型,状态,參数

    ************************************************************************   ****原文:blog.csdn.net/clar ...

  2. Oracle:复合触发器

    ----- CF_DEPTUCORGANIZATION  INSERT UPDATE DELETE 触发器CREATE  OR REPLACE TRIGGER tr_del_CF_DEPTUCORGA ...

  3. plsql programming 19 触发器

    挂起语句, 是指数据库 Hang 到那不能动了, 触发的. 1. DML 触发器 这种类型的触发器对于开发人员都很常见, 其他类型的触发器主要是给DBA使用的. 配置触发器,我们需要回答以下问题: 触 ...

  4. pl/sql学习(5): 触发器trigger/事务和锁

    (一)触发器简单介绍 触发器是由数据库的特定时间来触发的, 特定事件主要包括以下几种类型: (1)DML: insert, update,delete 增删改 (2)DDL: create, alte ...

  5. plsql实例精讲部分笔记

    转换sql: create or replace view v_sale(year,month1,month2,month3,month4,month5,month6,month7,month8,mo ...

  6. PLSQL开发笔记和小结(转载)

    *****************************************   PLSQL基本结构 ***************************************** 基本数据 ...

  7. Oracle之PLSQL总结

    基本数据类型变量 1. 基本数据类型     Number 数字型     Int 整数型     Pls_integer 整数型,产生溢出时出现错误 Binary_integer 整数型,表示带符号 ...

  8. PLSQL开发笔记和小结

    *****************************************  PLSQL基本结构*****************************************基本数据类型变 ...

  9. PL/SQL 编程(三 )程序包和包体,触发器,视图,索引

    一.程序包和包体 程序包(package):存储在数据库中的一组子程序.变量定义.在包中的子程序可以被其它程序包或子程序调用.但如果声明的是局部子程序,则只能在定义该局部子程序的块中调用该局部子程序. ...

随机推荐

  1. oracle 回收表空间的数据文件大小

    查看表空间的使用情况: " "used MB",b.bytes "free MB", ,) "percent_used" from ...

  2. SpringBoot普通类中如何获取其他bean例如Service、Dao(转)

    工具类 import org.springframework.beans.BeansException; import org.springframework.context.ApplicationC ...

  3. 【30集iCore3_ADP出厂源代码(ARM部分)讲解视频】30-7底层驱动之滴嗒定时器

    视频简介:该视频介绍iCore3应用开发平台中的配置方法,以及在应用开发平台中的应用. 源视频包下载地址:链接:http://pan.baidu.com/s/1o7UuUwi 密码:14cx 银杏科技 ...

  4. Java知多少(24)包装类、拆箱和装箱详解

    虽然 Java 语言是典型的面向对象编程语言,但其中的八种基本数据类型并不支持面向对象编程,基本类型的数据不具备“对象”的特性——不携带属性.没有方法可调用. 沿用它们只是为了迎合人类根深蒂固的习惯, ...

  5. Android应用图标微技巧,8.0系统中应用图标的适配

    现在已经进入了2018年,Android 8.0系统也逐渐开始普及起来了.三星今年推出的最新旗舰机Galaxy S9已经搭载了Android 8.0系统,紧接着小米.华为.OV等国产手机厂商即将推出的 ...

  6. 如何解决安装VMware后郑广电宽带客户端不能登录的问题?

    如何解决安装VMware后郑广电宽带客户端不能登录的问题? 问题:安装VMware后,郑广电宽带客户端不能登录,提示:“不允许代理上网”. 解决:将VMware的虚拟网卡(VMnet1和VMnet8) ...

  7. nginx负载均衡三:keepalive+nginx双机热备 和负载均衡

    环境 centos7.0 nginx:1.15 1.主备四台服务器 f1:负载均衡  192.168.70.169 f2:web站点  192.168.70.170 f3:web站点  192.168 ...

  8. [Unity3D] 05 - Access to DB or AWS

    可以选择连接本地服务器,或者云服务器. 参考源代码 : https://www.cnblogs.com/wuzhang/p/wuzhang20141202.html (1) 功能:点击一下按键,然后访 ...

  9. [React] 16 - Topic: Mixins & Higher-Order Components

    到底是个什么东东,待学习中... Ref: https://www.cnblogs.com/wonyun/p/5930333.html

  10. ImportError: libmysqlclient_r.so.16: cannot open shared object file: No such file or directory

    在开发一个python项目是,需要用到mysql,但是, 安装完mysql-python后import加载模块提示以下错误: ImportError: libmysqlclient_r.so.16: ...