久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

DB2 9數(shù)據(jù)庫中有關(guān)同步trigger的記錄

瀏覽:3日期:2023-11-08 08:42:58
項目需要寫了幾個數(shù)據(jù)庫同步用的 trigger ,就是記錄用戶的操作到一個 temp 表,然后天天通過webservice 同步到其它系統(tǒng),同步成功清空該 temp 表。自認為寫的還行,做個記錄。是 db2 的。-- 用戶組新增觸發(fā)器--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;-- 更新用戶組數(shù)據(jù)的觸發(fā)器- 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;-- 假如已經(jīng)有 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; -- 刪除用戶組觸發(fā)器--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 記錄,則整體結(jié)果相當于沒有進行任何操作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;
主站蜘蛛池模板: 亚洲一区二区三区视频 | 亚洲艹 | 日本黄色毛片 | sese综合| 久久久久国产精品www | 国产精品成人3p一区二区三区 | 日韩欧美精品区 | 精品久久一区二区三区 | 国产女人和拘做受在线视频 | 久久久久久久国产 | 成年人精品视频在线观看 | 亚洲风情在线观看 | 日本久久精品 | 国产欧美日韩在线观看 | 国产精品美女久久久久久久网站 | 午夜寂寞少妇aaa片毛片 | 犬夜叉在线观看 | 99草免费视频 | 久久99一区二区 | 久久综合久色欧美综合狠狠 | 日韩一区二区三区精品 | 精品三级三级三级三级三级 | 成人超碰在线 | 国产剧情一区二区 | 国产精品二区三区 | 亚洲国产精品99久久久久久久久 | 91在线网址 | 欧美日韩一区二区三区四区 | 国产成人99久久亚洲综合精品 | 国产精品欧美一区二区三区 | 日韩欧美在线免费观看 | 久久欧美高清二区三区 | 日韩精品久 | 欧美精品v国产精品v日韩精品 | 久久久一二三 | 国产精品视频一二三区 | 日韩在线一区二区 | 99久久久无码国产精品 | 九九久久精品 | 中文字幕日韩在线 | 日韩欧美成人一区二区三区 |