db2触发器例子

-- 建表语句
CREATE TABLE WANGZSTABLE (
  ID	INTEGER	NOT NULL,
  NAME	VARCHAR(20)	NOT NULL,
  AGE	VARCHAR(20)	NOT NULL,
  STATUS	VARCHAR(10),
  CREATETIME	TIMESTAMP,
  UPDATETIME	TIMESTAMP,
  SENDTIME	TIMESTAMP
);

select * from wangzsTable;
insert into WANGZSTABLE(id,name,age) values(1,'wangzs1','26');
update WANGZSTABLE set status='2' where id=1;

--update 更新特定状态 status=4
DROP TRIGGER "WANGZS_UPDATE";

CREATE TRIGGER WANGZS_UPDATE
  AFTER UPDATE OF STATUS ON WANGZSTABLE
  REFERENCING OLD AS OLDROW NEW AS NEWROW
  FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
  IF(NEWROW.STATUS='4')
    THEN
      update wangzsTable set UPDATETIME=CURRENT TIMESTAMP where id=NEWROW.id;
  END IF;
END;

--update 更新特定id
DROP TRIGGER "WANGZS_UPDATE";

CREATE TRIGGER WANGZS_UPDATE
  AFTER UPDATE OF STATUS ON WANGZSTABLE
  REFERENCING OLD AS OLDROW NEW AS NEWROW
  FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
    update wangzsTable set UPDATETIME=CURRENT TIMESTAMP where id=NEWROW.id;
END;

--insert
DROP TRIGGER "WANGZS_INSERT";

CREATE TRIGGER WANGZS_INSERT
  AFTER INSERT ON WANGZSTABLE
  REFERENCING  NEW AS NEWROW
  FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
    update wangzsTable set CREATETIME=CURRENT TIMESTAMP where id=NEWROW.id;
END;

db2触发器例子

时间: 2024-10-01 03:09:25

db2触发器例子的相关文章

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

使用 DB2 触发器和Java UDF实现业务通知

运用场景: 1.DB2 数据库中的记录被更改.2.如果这个更改使数据记录满足某些基于布尔逻辑的条件,数据库触发器将调用一个 Java UDF.3.Java UDF 使用 WebService接口通知其他服务. 步骤1:创建表create table zjyw.TTRD_UDF(CODE varchar(30) not null,NAME varchar(50) not null,REMARK varchar(100) not null) 步骤2:测试数据insert into zjyw.TTRD

触发器例子

例子 : https://www.zabbix.com/documentation/3.4/zh/manual/config/triggers/expression  #官网 触发器名称:Processor load is too high on host{host:system.cpu.load[all,avg1].last(0)}>5触发器说明:host:host名称system.cpu.load[all,avg1]:item值,一分内cpu平均负载值last(0):最新值>5:最新值大于

MySQL 触发器例子(两张表同步增加和删除)

其中old表示tab2(被动触发),new表示tab1(主动触发,外部应用程序在此表里执行insert语句) DROP TABLE IF EXISTS tab1; CREATE TABLE tab1( tab1_id varchar(11) ); DROP TABLE IF EXISTS tab2; CREATE TABLE tab2( tab2_id varchar(11) ); 创建触发器:t_afterinsert_on_tab1 作用:增加tab1表记录后自动将记录增加到tab2表中 d

DB2 触发器的写法及表主键结构的修改

DROP TRIGGER TR_MONTHLYCLOSING; CREATE TRIGGER TR_MONTHLYCLOSING NO CASCADE BEFORE INSERT ON PT_MONTHLYCLOSING REFERENCING NEW AS NEWROW FOR EACH ROW MODE DB2SQL BEGIN ATOMIC IF (NEWROW.FLOWNO IS NULL) THEN SET NEWROW.FLOWNO = CURRENT DATE; END IF; E

一个Mysql触发器例子--状态改变的同时更新同表中的另一字段

#表(jc_shop_product )中有一状态值--是否上架(on_sale) 若由未上架(0)转为上架(1) 同时设置上架时间(on_sale_time) drop trigger if exists update_on_sale_time_of_product; delimiter //      CREATE TRIGGER update_on_sale_time_of_product BEFORE UPDATE ON jc_shop_product     FOR EACH ROW 

一个很好的触发器例子(case when)

CREATE OR REPLACE TRIGGER TR_CGD1 BEFORE UPDATE OR INSERT OR DELETE ON BB_MJ_CGD1_TB FOR EACH ROWDECLARE V_COUNT NUMBER;BEGIN CASE WHEN UPDATING OR INSERTING THEN IF :NEW.DJZT = '结束' THEN :NEW.DJZT := '结束'; ELSE SELECT COUNT(*) INTO V_COUNT FROM BB_M

碰撞器与触发器[Unity]

请看原帖,移步:Unity3d碰撞检测中碰撞器与触发器的区别 要产生碰撞必须为游戏对象添加刚体(Rigidbody)和碰撞器,刚体可以让物体在物理影响下运动.碰撞体是物理组件的一类,它要与刚体一起添加到游戏对象上才能触发碰撞.如果两个刚体相互撞在一起,除非两个对象有碰撞体时物理引擎才会计算碰撞,在物理模拟中,没有碰撞体的刚体会彼此相互穿过. 物体发生碰撞的必要条件: 两个物体都必须带有碰撞器(Collider),其中一个物体还必须带有Rigidbody刚体. 在unity3d中,能检测碰撞发生的

wex5 教程 之 图文讲解 智能数据库设计 之(1) 触发器

一:设计需求: 智能数据库设计,其实没有这个说法,只是由于我设计视频播族器的需要,对数据库的设计有一些智能化的需求. 目的有三个: 1.减少前台后端操作数据库代码量 2.数据库操作失败可以回滚.保证数据库的完整,正确. 3.充分利用数据库性能. 今天用到的是触发器 例子是我之前的一个设计要求,在戏曲管理后台把热门戏曲的id添加到热门表之后,戏曲表里相应的字段自动填充hot标记为1.以往的设计是在前台对表操作,今天用触发器的功能监控操作表自动填充字段.简单理解就是,用触发器监控一个表的变化,来修改