DB2 表字段值变更记录
DB2 表字段值变更记录
需求描述:业务需要监控业务表中字段值变更情况,以便进行后续处理;
需求分析:使用触发器方式实现
解决办法:
-- 业务表:
CREATE TABLE t(USERID INT, NAME VARCHAR (10), MANAUNITID VARCHAR (10));-- 日志表CREATE TABLE t_log(USERID INT, SOURCE_UNIT VARCHAR (10), TARGET_UNIT VARCHAR (10), CHANGE_TYPE INT);-- 触发器
CREATE TRIGGER TR_T_UPDATE AFTER
UPDATE OF MANAUNITID ON t REFERENCING OLD AS O NEW AS N
FOR EACH ROW
BEGIN ATOMICIF coalesce(o.MANAUNITID,'') != coalesce(n.MANAUNITID,'') THENINSERT INTO t_log (USERID, SOURCE_UNIT, TARGET_UNIT, CHANGE_TYPE)VALUES(N.USERID, O.MANAUNITID, N.MANAUNITID, 1);END IF;
END;-- 功能测试
SELECT * FROM T;
SELECT * FROM T_LOG;-- 写入数据
INSERT INTO T VALUES(1,'hury','101');
INSERT INTO T VALUES(2,'lj','101');-- 更新非监控列,查看是否记录日志
UPDATE t SET NAME = 'hury2' WHERE USERID = 1;
-- 更新监控列,但值不变,查看是否记录日志
UPDATE t SET MANAUNITID = '101' WHERE USERID = 1;
-- 更新监控列,更新为新值,查看是否记录日志
UPDATE t SET MANAUNITID = '102' WHERE USERID = 1;-- 空值测试
UPDATE t SET manaunitid = NULL WHERE userid = 2;
UPDATE t SET manaunitid = '101' WHERE userid = 2;-- 清理测试表
DROP TRIGGER TR_T_UPDATE;
DROP TABLE t;
DROP TABLE t_log;
DB2 表字段值变更记录相关推荐
- 列的完整性约束——设置表字段值自动增加(AUTO_INCREMENT)
系列文章目录 列的完整性约束 文章目录 系列文章目录 前言 一.语句格式 二.实际应用 总结 前言 AUTO_INCREMENT是MySQL唯一扩展的完整性约束,当向数据库表中插入新记录时,字段上的值 ...
- mysql - 表字段值自增(auto_increment)
路的好坏不在于崎岖多少, 只在于谁能最终达到目标.--申宝峰 auto_increment是MySQL唯一扩展的完整性约束,当向数据库表中插入新纪录时,字段上的值会自动生成唯一的id.在设置具体的au ...
- Arcgis属性表字段值批量替换
1.简述 实验课上,老师让我们依据出台的<国土空间调查.规划.用途管制用地用海分类说明>更改原有三调数据分类名中的属性字段值, 如上图所示,原始的三调数据中的分类名:冰川及永久积累,依据新 ...
- mysql表字段值处理回车符换行符
查询数据库时,字段值一直无法匹配上,但是看数据库,觉得没问题,仔细排查后,发现可能是数据入口有问题,导致这个字段的所有的值,后面都加的有回车和换行符. 鼠标悬浮时没问题,但是如果真正的点击这个字段时, ...
- html 字段類型控制,db2修改表字段类型
db2 如何向表中增加,修改字段 如果此回答对楼主有帮助,给个喜欢好吗?啦 db2表字段修改 1:删除字段非空属性alter table XXX alter column XXX drop not n ...
- c mysql 的默认值_为mysql表字段设置默认值的方法及注意细节
为mysql表字段设置默认值的方法及注意细节,有需要的朋友可以参考下. 环境:MySQL 5.1 + 命令行工具 问题:MySQL表字段设置默认值 解决方法: 代码如下: --SQL: CREATE ...
- NAVICAT MYSQL 建表字段 默认值、EMPTY STRING、空白、NULL 的区别
Navicat mysql 建表字段 默认值.empty string.空白.NULL 的区别 总结在最后,没啥干货 简单测试了4种类型 bigint tinyint varchar char 单引号 ...
- Salesforce 中获取数据表字段的 picklist 的值
Salesforce 中获取数据表字段的 picklist 的值 cmStatus = new List<String>();Map<String, Schema.DescribeF ...
- postgre 修改表字段默认值
修改表字段默认值 alter table alf_authority alter column downloadflag set default 'true'; alter table alf_aut ...
- mysql 整型默认值,MySQL表字段设立默认值
mysql表字段设置默认值 环境 MySQL 5.1 + 命令行工具 问题 MySQL表字段设置默认值 解决 --SQL: CREATE TABLE test( i_a int NOT NULL DE ...
最新文章
- ASP.NET MVC – 模型简介
- CocoaPods 安装与使用教程
- 【Centos】CentOS7 安装 JDK11.0.3
- html怎么使图片无法另存为,如何禁止图片另存为?禁止网页另存为到本地的方法...
- elementUI的container布局设置全屏宽度
- Java集合类中绝对占有一席之地的List,涨薪7K!
- 一路风景---我期待的是师生关系
- ssh java_java中的SSH的各自作用是什么-百度经验
- 玩转spring boot——结合AngularJs和JDBC
- spring AOP切面及日志记录实现
- IP代理池Proxy_Pool使用教程(Windows版)
- 创建自己的WordPress主题的三种方法
- Vue.js 踩坑记 (一)
- 小白装openstack(二) 安装NTP服务
- IntelliJ IDEA 2022.2正式发布,支持Spring Boot 3和Spring 6
- steam如何一键登录_如何在Steam上启用一键通
- win7 系统增加自定义分辨率_【文献转载】GT5000便携式多参数土壤呼吸测量系统用于棉花田间土壤二氧化碳释放量的测量...
- 大龄青年的艰难转行IT之路(二)
- 节点度表示法 表头节点,表结点 内部排序
- 2018年全国各省市区编号大全(2)