CREATE
TRIGGER FUEL.HDGJcoaldayexpend1_insertTRIGGER AFTER
INSERT
ON
FUEL.coaldayexpend1 REFERENCING NEW AS new FOR EACH ROW MODE DB2SQL begin atomic declare expDate TIMESTAMP ; declare plantCode VARCHAR(32) ;
declare powerQuan DOUBLE ; declare heatQuan DOUBLE ; declare netQuan DOUBLE ;
declare beltQuan DOUBLE ; declare beltAdjustQuan DOUBLE ; declare powerExpQuan
DOUBLE ; declare heatExpQuan DOUBLE ; declare otherExpQuan DOUBLE ; declare
scheduleQuan DOUBLE ; declare remark VARCHAR(512); declare status VARCHAR(16) ;
declare operateDate TIMESTAMP ; declare operator VARCHAR(50) ; declare
expDateChar VARCHAR(32) ; declare operateDateChar VARCHAR(32) ; declare xml_id
BIGINT;
SET
( expDate,
plantCode,
powerQuan,
heatQuan,
netQuan,
beltQuan,
beltAdjustQuan,
powerExpQuan,
heatExpQuan,
otherExpQuan,
scheduleQuan,
remark,
status,
operateDate,
operator ) = ( new.expDate,
new.plantCode,
new.powerQuan,
new.heatQuan,
new.netQuan,
new.beltQuan,
new.beltAdjustQuan,
new.powerExpQuan,
new.heatExpQuan,
new.otherExpQuan,
new.scheduleQuan,
new.remark,
new.status,
new.operateDate,
new.operator );
if ( expDate IS null ) then
SET
expDateChar = '' ; else
SET
expDateChar = char(date(expDate)) ;
end if ; if ( plantCode IS null ) then
SET
plantCode = '' ; end if ; if ( remark IS null ) then
SET
remark = '' ; end if ; if ( status IS null ) then
SET
status = '' ; end if ; if ( operateDate IS null ) then
SET
operateDateChar = '' ; else
SET
operateDateChar = char(date(operateDate))||' '||char(time(operateDate));
end if ; if ( operator IS null ) then
SET
operator = '' ; end if ; if NOT exists(
SELECT
xml_id
FROM
fuel.jt_hdgj
WHERE
tablename = 'coaldayexpend1' AND
hdgj_id = char(new.id)) then INSERT
INTO platform.DATA_COALDAYEXPEND1(timemark,
itemid,
datadetail)
VALUES
(char(current date) || ' '||char( current time ),
plantCode,
'<CoalDayExpendLiang> <expDate>'||expDateChar||'</expDate>
<plantCode>'||plantCode||'</plantCode>
<powerQuan>'||fuel.doutochar(powerQuan)||'</powerQuan>
<heatQuan>'||fuel.doutochar(heatQuan)||'</heatQuan>
<netQuan>'||fuel.doutochar(netQuan)||'</netQuan>
<beltQuan>'||fuel.doutochar(beltQuan)||'</beltQuan>
<beltAdjustQuan>'||fuel.doutochar(beltAdjustQuan)||'</beltAdjustQuan>
<powerExpQuan>'||fuel.doutochar(powerExpQuan)||'</powerExpQuan>
<heatExpQuan>'||fuel.doutochar(heatExpQuan)||'</heatExpQuan>
<otherExpQuan>'||fuel.doutochar(otherExpQuan)||'</otherExpQuan>
<scheduleQuan>'||fuel.doutochar(scheduleQuan)||'</scheduleQuan>
<status>'||status||'</status> <remark>'||remark||'</remark>
<operateDate>'||operateDateChar||'</operateDate>
<operator>'||operator||'</operator> </CoalDayExpendLiang> ');
SET
(xml_id) = (
SELECT
identity_val_local()
FROM
sysibm.sysdummy1) ;
INSERT
INTO fuel.jt_hdgj(tablename,
xml_id,
hdgj_id)
VALUES
('coaldayexpend1',
xml_id,
to_char(new.id)); end if; if(exists(
SELECT
*
FROM
FUEL.PICOALPROCESSSTATUS
WHERE
TABLENAME='COALDAYEXPEND1' AND
PKID= new.id )) then
UPDATE
FUEL.PICOALPROCESSSTATUS
SET
LAST_UPDATE_DATE=new.LAST_UPDATE_DATE ,
PROCESSTIME=new.LAST_UPDATE_DATE
WHERE
TABLENAME='COALDAYEXPEND1' AND
PKID= new.id ; else
INSERT
INTO FUEL.PICOALPROCESSSTATUS (TABLENAME,
PKID,
PROCESS,
LAST_UPDATE_DATE,
PROCESSTIME)
VALUES
('COALDAYEXPEND1',
new.id,
'已处理',
new.LAST_UPDATE_DATE,
new.LAST_UPDATE_DATE); end if; END

触发器SQL的更多相关文章

  1. Oracle生成多表触发器sql

    --将所有HY开头的表都生成一个更新触发器的脚本('/'是为了连续创建多个触发器而不报错)select 'CREATE OR REPLACE TRIGGER '||table_name||' BEFO ...

  2. SQL Server触发器

    一﹕ 触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活.所以触发器可以用来实现对表实施复杂的完整性约`束. 二﹕ SQL Server为每个触发 ...

  3. SQL Server DDL触发器运用

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 基础知识(Rudimentary Knowledge) DDL运用场景(DDL Scene) ...

  4. SQL Server 触发器创建、删除、修改、查看示例

    一﹕ 触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活.所以触发器可以用来实现对表实施复杂的完整性约`束. 二﹕ SQL Server为每个触发 ...

  5. oracle PL/SQL(procedure language/SQL)程序设计之触发器(trigger)

    创建触发器 触发器类似于过程和函数,都拥有声明.执行和异常处理过程的带名PL/SQL块.与包类似,触发器必须存储在数据库中.前面已经讲过,过程是显式地通过过程调用执行的,同时过程调用可以传递参数.与之 ...

  6. SQL Server 数据库DML触发器 【一】

    今天学习SQL Server数据库中DML触发器(DDL触发器以后有时间继续学习). 当删除一条创建有触发器的表中的内容时,触发器执行SQL语句. 1.首相先创建一张表,表名称是 [Test] , 内 ...

  7. SQL Server 存储过程、触发器、游标

    存储过程 1.存储过程是事先编好的.存储在数据库中的程序,这些程序用来完成对数据库的指定操作. 2.系统存储过程: SQL Server本身提供了一些存储过程,用于管理有关数据库和用户的信息. 用户存 ...

  8. SQL之trigger(触发器)

    先来看一小段程序 有如下三张表: 帐户(编号,姓名,余额,建立日期,储蓄所编号) 储蓄所(编号,名称,地址,人数,所属城市) 借贷(帐户,借贷类型,金额,日期) create trigger tri_ ...

  9. SQL入门(3):定义约束/断言assertion/触发器trigger

    本文介绍数据库的完整性 完整性控制程序: 指定规则,检查规则 (规则就是约束条件) 动态约束 intergrity constraint::=(O,P,A,R) O : 数据集合, 约束的对象 ?: ...

随机推荐

  1. 【原创】Mindjet Manager思维导图软件云服务功能的使用方法

        注:自己使用了mindjet manager来画思维导图已经有一段时间了,无疑mindjet manager的功能是很强大的,但是最近因为自己两台电脑都安装了mindjet manager,每 ...

  2. 如何使用.net开发一款小而美的O2O移动应用? ——“家庭小秘”APP介绍及采访记录

    “家庭小秘”是一款“互联网+生活服务”平台,为市民家庭提供优质家庭生活服务和企业后勤服务,包含了用户注册.购买预约.订单查询.充值付款.即时通讯等功能. 这款应用已上线至AppStore和安卓的应用商 ...

  3. 封装继承多态(OOP)

    封装:把事物封装成类,私有化属性. 继承:共同的特性封装在父类,子类就有父类的属性 父类已经实现了的方法,子类也有需要前面+New 隐藏父类的方法,就不报错了,有这个语法,面试的时候问过,不推荐用. ...

  4. APP请求服务器数据-HttpUrlConnection

    1. 实例化URL对象 首先第一步实例化一个URL对象,传入参数为请求的数据的网址. URL url = new URL("http://www.imooc.com/api/teacher? ...

  5. Android设计模式总结

    1.复合模式:三层架构.MVC.MVP.MVVM 2.设计模式-单例模式 配置类的使用. 3.设计模式-模板方法 通过抽象类或接口提前定义要实现的方法. 4.设计模式-观察者模式 消息的通知. 5.设 ...

  6. matplotlib箱线图与柱状图比较

    代码: # -*- coding: utf-8 -*- """ Created on Thu Jul 12 16:37:47 2018 @author: zhen &qu ...

  7. MySQL:select command denied to user for table 'proc'案例

    使用EMS MySQL Manager Pro(3.4.0.1)连接MySQL 5.6.20时,报错:"SELECT command denied to user xxx@xxx.xxx.x ...

  8. C语言字符数组回顾

    赋值篇: Part1      错误引例*2: char c6[];//WRONG c6="HELLO";//WRONG char c7[];//WRONG c7[]='H';// ...

  9. RocketMQ4.3.X关于设置useEpollNativeSelector = true报错问题

    前一阵子刚整理完RocketMQ4.3.x版本的相关配置的工作,接下来就来测试一下改变参数会带来什么好的结果 首先我就选中了useEpollNativeSelector 这个参数 默认这个参数是 fa ...

  10. 015_python原生在线调试工具

    一.pdb https://docs.python.org/3/library/pdb.html