触发器SQL
- 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的更多相关文章
- Oracle生成多表触发器sql
--将所有HY开头的表都生成一个更新触发器的脚本('/'是为了连续创建多个触发器而不报错)select 'CREATE OR REPLACE TRIGGER '||table_name||' BEFO ...
- SQL Server触发器
一﹕ 触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活.所以触发器可以用来实现对表实施复杂的完整性约`束. 二﹕ SQL Server为每个触发 ...
- SQL Server DDL触发器运用
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 基础知识(Rudimentary Knowledge) DDL运用场景(DDL Scene) ...
- SQL Server 触发器创建、删除、修改、查看示例
一﹕ 触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活.所以触发器可以用来实现对表实施复杂的完整性约`束. 二﹕ SQL Server为每个触发 ...
- oracle PL/SQL(procedure language/SQL)程序设计之触发器(trigger)
创建触发器 触发器类似于过程和函数,都拥有声明.执行和异常处理过程的带名PL/SQL块.与包类似,触发器必须存储在数据库中.前面已经讲过,过程是显式地通过过程调用执行的,同时过程调用可以传递参数.与之 ...
- SQL Server 数据库DML触发器 【一】
今天学习SQL Server数据库中DML触发器(DDL触发器以后有时间继续学习). 当删除一条创建有触发器的表中的内容时,触发器执行SQL语句. 1.首相先创建一张表,表名称是 [Test] , 内 ...
- SQL Server 存储过程、触发器、游标
存储过程 1.存储过程是事先编好的.存储在数据库中的程序,这些程序用来完成对数据库的指定操作. 2.系统存储过程: SQL Server本身提供了一些存储过程,用于管理有关数据库和用户的信息. 用户存 ...
- SQL之trigger(触发器)
先来看一小段程序 有如下三张表: 帐户(编号,姓名,余额,建立日期,储蓄所编号) 储蓄所(编号,名称,地址,人数,所属城市) 借贷(帐户,借贷类型,金额,日期) create trigger tri_ ...
- SQL入门(3):定义约束/断言assertion/触发器trigger
本文介绍数据库的完整性 完整性控制程序: 指定规则,检查规则 (规则就是约束条件) 动态约束 intergrity constraint::=(O,P,A,R) O : 数据集合, 约束的对象 ?: ...
随机推荐
- 2.5配置的框架浅析「深入浅出ASP.NET Core系列」
希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,谢谢关注. 配置的使用流程 //第一步.初始化Builder var builder = new ConfigurationB ...
- 浅谈Linux基本命令
本篇文章作为Linux 入门的必备篇,主要简述Linux系统目录结构和Linux 基本Shell命令,大致内容如下: 一 Linux目录及其概述 如下目录为CentOS 7目录结构 1.建立 ...
- C# WebRequest.Create 锚点“#”字符问题
背景 在与后台API接口对接时,如将网页Url作为参数请求数据时,如果是锚点参数,则会丢失. 锚点参数 请求通过WebRequest.Create创建一个WebRequest: var uri = & ...
- Springboot整合activemq
今天呢心血来潮,也有很多以前的学弟问到我关于消息队列的一些问题,有个刚入门,有的有问题都来问我,那么今天来说说如何快速入门mq. 一.首先说下什么是消息队列? 1.消息队列是在消息的传输过程中保存消息 ...
- Ubunttu16.04升级/更新git版本(亲测有效)
sudo add-apt-repository ppa:git-core/ppa sudo apt-get update sudo apt-get install git 升级前: 升级后:
- Android ble 蓝牙4.0 总结一
本文介绍Android ble 蓝牙4.0,也就是说API level >= 18,且支持蓝牙4.0的手机才可以使用,如果手机系统版本API level < 18,也是用不了蓝牙4.0的哦 ...
- 【Spring Cloud笔记】Eureka注册中心增加权限认证
在Spring Cloud通过Eureka实现服务注册与发现时,默认提供web管理界面,但是如果在生产环境暴露出来,会存在安全问题.为了解决这个问题,我们可以通过添加权限认证进行控制,具体步骤如下: ...
- 从0开始的Python学习015输入与输出
简介 在之前的编程中,我们的信息打印,数据的展示都是在控制台(命令行)直接输出的,信息都是一次性的没有办法复用和保存以便下次查看,今天我们将学习Python的输入输出,解决以上问题. 复习 得到输入用 ...
- c/c++ 继承与多态 文本查询的小例子(智能指针版本)
为了更好的理解继承和多态,做一个文本查询的小例子. 接口类:Query有2个方法. eval:查询,返回查询结果类QueryResult rep:得到要查询的文本 客户端程序的使用方法: //查询包含 ...
- debian9.6修改系统语言
(中文改英文) 在VM虚拟机中安装debian9.6(查看版本命令 cat /etc/debian_version ),安装时选择语言为中文:在控制台登录操作时,大部分提示信息显示为乱码,修改中文语言 ...