DB2触发器简单例子
db2使用版本9.7
创建A 、B两个表,A表数据有更新、删除、插入时,将A表ID记录放入B表
1、create table A (id varchar(5),name varchar(30));
create table B (id varchar(5),name varchar(30))
2、创建触发器
--插入时触动
CREATE TRIGGER administrator.tri_insert
AFTER INSERT ON administrator.A
REFERENCING NEW AS N
FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
INSERT INTO administrator.B(ID,NAME) VALUES(N.ID,N.NAME );
END
--测试: INSERT INTO administrator.A VALUES ('3','Name');
--删除时触动
CREATE TRIGGER administrator.tri_delete
AFTER DELETE ON administrator.A
REFERENCING OLD AS O
FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
INSERT INTO administrator.B(ID) VALUES(O.ID);
END --测试:DELETE FROM administrator.A WHERE ID = '3'
--更新时触动
CREATE OR REPLACE TRIGGER administrator.tri_update
AFTER UPDATE OF NAME ON administrator.A
REFERENCING NEW AS N OLD AS O
FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
INSERT INTO administrator.B(ID,NAME) VALUES(O.ID,N.NAME);
END
--测试:UPDATE administrator.A SET NAME = 'n2_name'
--有资料提示 DB2 9.7以上版本支持 AFTER INSERT OR DELETE OR UPDATE 写法,可是9.7版本并不支持
例子:
CREATE OR REPLACE TRIGGER HIRED
AFTER INSERT OR DELETE OR UPDATE OF SALARY ON EMPLOYEE
REFERENCING NEW AS N OLD AS O FOR EACH ROW
BEGIN
IF INSERTING THEN
UPDATE COMPANY_STATS SET NBEMP = NBEMP + 1;
ELSEIF
DELETING THEN UPDATE COMPANY_STATS SET NBEMP = NBEMP - 1;
ELSEIF (UPDATING AND (N.SALARY > 1.1 * O.SALARY))
THEN SIGNAL SQLSTATE '75000' SET MESSAGE_TEXT='Salary increase>10%';
END IF;
END;
之后,考虑使用DB2中ORACLE兼容性的设置,db2set DB2_COMPATIBILITY_VECTOR=ORA , 依然不支持 AFTER INSERT OR DELETE OR UPDATE 写法,有成功在9.7版本中成功使用AFTER INSERT OR DELETE OR UPDATE 写法的麻烦指导下
DB2触发器简单例子的更多相关文章
- Hibernate4.2.4入门(一)——环境搭建和简单例子
一.前言 发下牢骚,这段时间要做项目,又要学框架,搞得都没时间写笔记,但是觉得这知识学过还是要记录下.进入主题了 1.1.Hibernate简介 什么是Hibernate?Hibernate有什么用? ...
- sql server触发器的例子
发布:thebaby 来源:脚本学堂 [大 中 小] 本文介绍下,在sql server数据库中使用触发器的简单例子,有需要的朋友可以参考下,希望对你有一定的帮助. 原文地址:http:/ ...
- (一)Quartz2.2.1 简单例子
转载至http://blog.csdn.net/a4307515/article/details/46985533 1.关键接口 Scheduler,任务调度的API:它可以用来启动或者终止任务等. ...
- AgileEAS.NET SOA 中间件平台.Net Socket通信框架-简单例子-实现简单的服务端客户端消息应答
一.AgileEAS.NET SOA中间件Socket/Tcp框架介绍 在文章AgileEAS.NET SOA 中间件平台Socket/Tcp通信框架介绍一文之中我们对AgileEAS.NET SOA ...
- spring mvc(注解)上传文件的简单例子
spring mvc(注解)上传文件的简单例子,这有几个需要注意的地方1.form的enctype=”multipart/form-data” 这个是上传文件必须的2.applicationConte ...
- ko 简单例子
Knockout是在下面三个核心功能是建立起来的: 监控属性(Observables)和依赖跟踪(Dependency tracking) 声明式绑定(Declarative bindings) 模板 ...
- mysql定时任务简单例子
mysql定时任务简单例子 ? 1 2 3 4 5 6 7 8 9 如果要每30秒执行以下语句: [sql] update userinfo set endtime = now() WHE ...
- java socket编程开发简单例子 与 nio非阻塞通道
基本socket编程 1.以下只是简单例子,没有用多线程处理,只能一发一收(由于scan.nextLine()线程会进入等待状态),使用时可以根据具体项目功能进行优化处理 2.以下代码使用了1.8新特 ...
- 一个简单例子:贫血模型or领域模型
转:一个简单例子:贫血模型or领域模型 贫血模型 我们首先用贫血模型来实现.所谓贫血模型就是模型对象之间存在完整的关联(可能存在多余的关联),但是对象除了get和set方外外几乎就没有其它的方法,整个 ...
随机推荐
- sqlbulkcopy 使用DataTable作为数据源的数据类型问题--来自数据源的String类型的给定值不能转换为指定目标列的类型 uniqueidentifier
今天做批量插入的时候,SQLSERVER总是报错,错误提示“来自数据源的String类型的给定值不能转换为指定目标列的类型 uniqueidentifier”. 首先核对了一下定义的dataTable ...
- erlang分布式例子
抄袭自 http://www.blogjava.net/killme2008/archive/2007/06/29/127099.html 简单的说,就是 主机上需要同时启用短节点名,或者长节点名 保 ...
- Python 自动化测试config配置文件ini 配置目录
import ConfigParserimport os path = os.path.join(os.path.dirname(__file__), 'config.ini').replace('\ ...
- python3+ros api
官方文档:https://wiki.mikrotik.com/wiki/Manual:API_Python3 # !/usr/bin/env python# -*- coding:utf-8 -*-# ...
- 红黑树(Red-Black Tree)
概念解析: 红黑树是一种自平衡二叉查找树(self-balancing binary search tree).因此,红黑树本身就是二叉树的一个变种.典型的用途是实现关联数组(Associative ...
- js中的requestAnimationFrame
js中的requestAnimationFrame requestAnimationFrame的作用就是重绘 一个简单的demo如下 <!DOCTYPE html> <html la ...
- 小白之js原生轮播图
html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- IOS证书申请 PPF provisioning profile Developer Certificate
[Error] No provisioning profile found for the selected build configuration 新来一个iPhone,真机调试的时候报错. 1.x ...
- codeforces:Roads in the Kingdom分析和实现
题目大意:国家有n个城市,还有n条道路,每条道路连通两个不同的城市,n条道路使得所有n个城市相互连通.现在国家经费不足,要关闭一条道路.国家的不便度定义为国家中任意两个不同的城市之间的距离的最大值,那 ...
- Bootstrap 中的 aria-label 和 aria-labelledby 属性
这两个属性是为特殊网页阅读器设置的属性,在一些特殊设备上,当浏览到这样的内容设备会将内容读出来.是为了一些有视力障碍的人能够同样”浏览”网页而准备的. 转自http://blog.csdn.net/l ...