国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

DB2 9數據庫中有關同步trigger的記錄

瀏覽:8日期:2023-11-08 08:42:58
項目需要寫了幾個數據庫同步用的 trigger ,就是記錄用戶的操作到一個 temp 表,然后天天通過webservice 同步到其它系統,同步成功清空該 temp 表。自認為寫的還行,做個記錄。是 db2 的。-- 用戶組新增觸發器--DROP TRIGGER TG_USERG;CREATE TRIGGER LIBING.TG_USERG AFTER INSERT ON LIBING.TM_USERGREFERENCING NEW AS NROWFOR EACH ROWMODE DB2SQL BEGIN ATOMICdeclare @groupId integer;declare @name varchar(30);declare @descn varchar(100);declare @syntype varchar(4);declare @ddlsql varchar(1024);declare @isprimary char(1);declare @updateTime timestamp;declare @createTime timestamp;declare @createBy integer;declare @updateBy integer;declare @groupType integer;declare @adminType integer;declare @appId integer;declare @oldGroupId integer;set @groupId=NROW.GROUP_ID;set @name=NROW.name;set @descn=NROW.descn;set @syntype=NROW.syn_type;set @ddlsql=NROW.ddlsql;set @isprimary=NROW.isprimary;set @updateTime=NROW.update_time;set @createTime=NROW.create_time;set @createBy=NROW.create_by;set @updateBy=NROW.update_by;set @groupType=NROW.group_type;set @adminType=NROW.admin_type;set @appId=NROW.app_id;INSERT INTO TM_USERG_TEMP(GROUP_ID,NAME,DESCN,DDLSQL,ISPRIMARY,UPDATE_TIME,CREATE_TIME,CREATE_BY,UPDATE_BY,GROUP_TYPE,ADMIN_TYPE,APP_ID,ACTION) VALUES (@groupId,@name,@descn,@ddlsql,@isprimary,@updateTime,@createTime,@createBy,@updateBy,@groupType,@adminType,@appId,'INSERT');END;-- 更新用戶組數據的觸發器- DROP TRIGGER TG_USERG_UPDATE;CREATE TRIGGER TG_USERG_UPDATE AFTER UPDATE ON TM_USERGREFERENCING NEW AS NROWFOR EACH ROWMODE DB2SQLBEGIN ATOMICdeclare @groupId integer;declare @name varchar(30);declare @descn varchar(100);declare @syntype varchar(4);declare @ddlsql varchar(1024);declare @isprimary char(1);declare @updateTime timestamp;declare @createTime timestamp;declare @createBy integer;declare @updateBy integer;declare @groupType integer;declare @adminType integer;declare @appId integer;set @groupId=NROW.GROUP_ID;set @name=NROW.name;set @descn=NROW.descn;set @syntype=NROW.syn_type;set @ddlsql=NROW.ddlsql;set @isprimary=NROW.isprimary;set @updateTime=NROW.update_time;set @createTime=NROW.create_time;set @createBy=NROW.create_by;set @updateBy=NROW.update_by;set @groupType=NROW.group_type;set @adminType=NROW.admin_type;set @appId=NROW.app_id;-- 假如已經有 update 則只記錄最后一條 updateIF EXISTS(SELECT GROUP_ID FROM TM_USERG_TEMP WHERE GROUP_ID=@groupId AND ACTION='UPDATE') THEN UPDATETM_USERG_TEMP SET GROUP_ID=@groupId,NAME=@name,DESCN=@descn,DDLSQL=@ddlsql,ISPRIMARY=@isprimary,UPDATE_TIME=@updateTime,CREATE_TIME=@createTime,CREATE_BY=@createBy,UPDATE_BY=@updateBy,GROUP_TYPE=@groupType,ADMIN_TYPE=@adminType,APP_ID=@appId,ACTION='UPDATE'where GROUP_ID=@groupId AND ACTION='UPDATE';-- 假如有 insert 則把后面的 update 當作 insertELSEIF EXISTS(SELECT GROUP_ID FROM TM_USERG_TEMP WHERE GROUP_ID=@groupId AND ACTION='INSERT') THENUPDATE TM_USERG_TEMP SET GROUP_ID=@groupId,NAME=@name,DESCN=@descn,DDLSQL=@ddlsql,ISPRIMARY=@isprimary,UPDATE_TIME=@updateTime,CREATE_TIME=@createTime,CREATE_BY=@createBy,UPDATE_BY=@updateBy,GROUP_TYPE=@groupType,ADMIN_TYPE=@adminType,APP_ID=@appId,ACTION='INSERT'where GROUP_ID=@groupId AND ACTION='INSERT';ELSE INSERT INTO TM_USERG_TEMP(GROUP_ID,NAME,DESCN,DDLSQL,ISPRIMARY,UPDATE_TIME,CREATE_TIME,CREATE_BY,UPDATE_BY,GROUP_TYPE,ADMIN_TYPE,APP_ID,ACTION) VALUES (@groupId,@name,@descn,@ddlsql,@isprimary,@updateTime,@createTime,@createBy,@updateBy,@groupType,@adminType,@appId,'UPDATE');end if;END; -- 刪除用戶組觸發器--DROP TRIGGER TG_USERG_DELETE;CREATE TRIGGER TG_USERG_DELETE AFTER DELETE ON TM_USERGREFERENCING OLD AS OROWFOR EACH ROWMODE DB2SQLBEGIN ATOMICdeclare @groupId integer;declare @name varchar(30);declare @descn varchar(100);declare @syntype varchar(4);declare @ddlsql varchar(1024);declare @isprimary char(1);declare @updateTime timestamp;declare @createTime timestamp;declare @createBy integer;declare @updateBy integer;declare @groupType integer;declare @adminType integer;declare @appId integer;set @groupId=OROW.GROUP_ID;set @name=OROW.name;set @descn=OROW.descn;set @syntype=OROW.syn_type;set @ddlsql=OROW.ddlsql;set @isprimary=OROW.isprimary;set @updateTime=OROW.update_time;set @createTime=OROW.create_time;set @createBy=OROW.create_by;set @updateBy=OROW.update_by;set @groupType=OROW.group_type;set @adminType=OROW.admin_type;set @appId=OROW.app_id;-- 假如沒有操作記錄,則插入 delete 記錄IF NOT EXISTS(SELECT GROUP_ID FROM TM_USERG_TEMP WHERE GROUP_ID=@groupId) THENINSERT INTO TM_USERG_TEMP(GROUP_ID,NAME,DESCN,DDLSQL,ISPRIMARY,UPDATE_TIME,CREATE_TIME,CREATE_BY,UPDATE_BY,GROUP_TYPE,ADMIN_TYPE,APP_ID,ACTION) VALUES (@groupId,@name,@descn,@ddlsql,@isprimary,@updateTime,@createTime,@createBy,@updateBy,@groupType,@adminType,@appId,'DELETE');-- 假如有 insert 記錄,則整體結果相當于沒有進行任何操作ELSEIF EXISTS(SELECT GROUP_ID FROM TM_USERG_TEMP WHERE GROUP_ID=@groupId and ACTION='INSERT') THENDELETE FROM TM_USERG_TEMP WHERE GROUP_ID=@groupId and ACTION='INSERT';-- 假如沒有 insert 記錄,則只需記錄最后的 delete 操作ELSEUPDATE TM_USERG_TEMP set ACTION='DELETE' where GROUP_ID=@groupId;END IF;END;
標簽: DB2 數據庫
主站蜘蛛池模板: 亚洲欧美一级视频 | 亚洲欧美一区二区三区在线观看 | 免费播放欧美毛片欧美a | 91精品一区国产高清在线 | 97视频在线免费 | 加勒比一本大道香蕉在线视频 | 一区二区三区四区产品乱码伦 | 热99re久久精品香蕉 | 国产小片 | 精品久久久久久久久久久久久久久 | 国产免费人成在线看视频 | 欧美日韩一区二区在线观看视频 | 99视频精品免费99在线 | 夜夜爽影院 | 国产一级片免费 | 在线观看免费a∨网站 | 特级毛片 | a毛片视频免费观看影院 | 亚洲国产精品一区二区不卡 | 国产精品久久一区二区三区 | 91香蕉国产 | 男人天堂视频网 | 一区二区不卡久久精品 | 亚洲一区 中文字幕 久久 | 国产成人精品系列在线观看 | 欧美日韩视频在线 | 91精品在线国产 | 成人毛片免费观看视频大全 | 一级特黄性色生活片一区二区 | 国产超薄肉色丝袜足j | 国内久久久久影院精品 | 国产精品亚洲一区二区在线观看 | 在线精品欧美日韩 | 成年性午夜免费视频网站不卡 | 亚洲一区二区在线视频 | 中文字幕一二三区乱码老 | 久久精品视频日本 | 亚洲图片视频在线 | 99久久精品免费看国产一区二区 | 精品一区二区三区四区在线 | 欧美精品免费在线 |