日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DB2 表字段值变更记录

發布時間:2023/12/14 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 表字段值变更记录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。