复合触发器范例
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复合触发器的更多相关文章
-
【PLSQL】触发器trigger类型,状态,參数
************************************************************************ ****原文:blog.csdn.net/clar ...
-
Oracle:复合触发器
----- CF_DEPTUCORGANIZATION INSERT UPDATE DELETE 触发器CREATE OR REPLACE TRIGGER tr_del_CF_DEPTUCORGA ...
-
plsql programming 19 触发器
挂起语句, 是指数据库 Hang 到那不能动了, 触发的. 1. DML 触发器 这种类型的触发器对于开发人员都很常见, 其他类型的触发器主要是给DBA使用的. 配置触发器,我们需要回答以下问题: 触 ...
-
pl/sql学习(5): 触发器trigger/事务和锁
(一)触发器简单介绍 触发器是由数据库的特定时间来触发的, 特定事件主要包括以下几种类型: (1)DML: insert, update,delete 增删改 (2)DDL: create, alte ...
-
plsql实例精讲部分笔记
转换sql: create or replace view v_sale(year,month1,month2,month3,month4,month5,month6,month7,month8,mo ...
-
PLSQL开发笔记和小结(转载)
***************************************** PLSQL基本结构 ***************************************** 基本数据 ...
-
Oracle之PLSQL总结
基本数据类型变量 1. 基本数据类型 Number 数字型 Int 整数型 Pls_integer 整数型,产生溢出时出现错误 Binary_integer 整数型,表示带符号 ...
-
PLSQL开发笔记和小结
***************************************** PLSQL基本结构*****************************************基本数据类型变 ...
-
PL/SQL 编程(三 )程序包和包体,触发器,视图,索引
一.程序包和包体 程序包(package):存储在数据库中的一组子程序.变量定义.在包中的子程序可以被其它程序包或子程序调用.但如果声明的是局部子程序,则只能在定义该局部子程序的块中调用该局部子程序. ...
随机推荐
-
Jackson fasterxml跟codehaus的区别 (fasterxml vs. codehaus) -- 转载
Jackson fasterxml和codehaus的区别: 他们是Jackson的两大分支.也是两个版本的不同包名.Jackson从2.0开始改用新的包名fasterxml:1.x版本的包名是cod ...
-
【转】linux ar 命令的使用说明那个和例子
from: http://blog.csdn.net/xljiulong/article/details/7082960 linux ar 命令的使用说明那个和例子 标签: linuxmakefile ...
-
AWS AutoScaling
origin_from: http://blog.csdn.net/libing_thinking/article/details/48327189 AutoScaling 是 AWS 比较核心的一个 ...
-
自绘按钮,添加Color属性(转载)
在标准的Windows程序中所有按钮均没有颜色.因此Delphi提供的所有按钮组件也均无颜色属性,有时你可能做了一个五颜六色的程序界面,而按钮颜色可能很不相称. 在此本人提供一种用自定义组件制作有颜色 ...
-
python中使用多继承
python中使用多继承,会涉及到查找顺序(MRO).重复调用(钻石继承,也叫菱形继承问题)等 MRO MRO即method resolution order,用于判断子类调用的属性来自于哪个父类.在 ...
-
notification:object not locked by thread before notify()
今天写notification练习时,误将NotificationManager.notify(0, notification);写成notification.notify(); 代码如下 publi ...
-
用git上传项目到github
1 git clone github仓库地址 2 git add . 3 git commit -m "changes log" 4 git remote add origi ...
-
PHP中include与require的特点和区别说明
引用文件的方法有两种:require 及 include.两种方式提供不同的使用弹性. require 的使用方法如 require("MyRequireFile.php"); . ...
-
js定时刷新页面.
//页面定时刷新.2017.09.27 $(document).ready(function () { self.setInterval(function () { var d = new Date( ...
-
解决微信小程序登录与发布的一些问题
解决微信小程序的问题 图片在电脑上显示但在手机上却无法显示的问题 要使用的是本地图片,不想把图片上传到网络再通过https的方式解决,解决方法如下: 1.image src中的图片地址对英文字母大小写 ...