亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

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

瀏覽:2日期: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 數據庫
主站蜘蛛池模板: 久久久久久综合对白国产 | 亚洲一级黄色片 | 色青青草原桃花久久综合 | 色播亚洲视频在线观看 | 欧美成在线播放 | 亚洲综合网国产福利精品一区 | 麻豆视频在线 | 丁香六月激情婷婷 | 免费精品99久久国产综合精品 | chinese国产videoxx实拍 | 人人澡人人澡碰人人看软件 | 好看的毛片 | 99久久99久久精品国产 | 99精品一区二区三区 | 日本免费久久久久久久网站 | 国产在线每日更新 | 91精品福利在线 | 国产普通话对白精品hd | 人人干人人玩 | 亚洲精品在线免费看 | 亚洲人成网站色7799在线观看 | 香蕉一区二区 | 中文字幕在线一区二区三区 | 日韩欧美亚洲一区精选 | 国产一二三四区在线观看 | 国产亚洲精品免费 | 久久国产精品免费看 | 欧美日韩无线在码不卡一区二区三区 | 日本一级特黄在线播放 | 一区二区国产在线观看 | 狼人香蕉国产在线视频 | 丝袜足交在线播放 | 樱花草在线社区www韩国 | 亚洲精品久久久久久中文字幕小说 | 最新91视频 | 日本高清一级做a爱过程免费视频 | 久久久久久久亚洲精品一区 | 日韩国产精品欧美一区二区 | 亚州淫片aaaa视频 | 亚洲婷婷综合中文字幕第一页 | 国产精品视频流白浆免费视频 |