当前位置:网站首页>数据的同步为每个站点创建触发器同步表
数据的同步为每个站点创建触发器同步表
2022-07-06 11:47:00 【全栈程序员站长】
大家好,又见面了,我是全栈君。
在数据同步时提到以前的博客,在每个站点都会有创建触发器对于每个工作表,当运行CRUD。触发器的任务就是对其进行操作sql声明拼接成一个字符串,并存储在表中synchro_tb_operate_log中,假设触发器运行出现异常,则将其异常信息保存在还有一个表中:SYNCHRO_DATA_EXCEP_LOG,当中
synchro_tb_operate_log字段信息:主键ID、拼接的sql语句(当中包括主键ID和地区代码)、是否完毕同步(默觉得0未完毕)、创建时间
SYNCHRO_DATA_EXCEP_LOG字段信息:主键ID、触发器异常名称、触发器异常信息、触发器异常出现的时间
以下是创建item_rec代码,也能够让我们来学习一下创建触发器相关的语法和知识:
create or replace
TRIGGER "ADMIN"."TRIGGER_ITEM_REC"
after insert or update or delete
on ITEM_REC FOR EACH ROW
/** HEAD
* @name 项目记录表触发器
* @description 变更事件。形成ddl语句插入同步表中
* @version 1.0.0
* @author Tang
* @create-date 2014-07-01
*/
declare
v_sql nvarchar2(3000); --暂时存放sql
v_zdcode varchar2(30):='08052'; --网站代码
v_exception varchar2(500);
begin
v_sql := null;
case when inserting then--插入数据
v_sql := 'insert into ITEM_REC('||
'ID,PROTEAMNAME,PY,PROID,'||
'JCTYPE,WORKFLAG,ZXFLAG,JWDCODE)'||
'values('''||
:new.ID||''','''||replace(:new.PROTEAMNAME,'''','')||''','''||:new.PY||''','''||:new.PROID||''','''||
:new.JCTYPE||''','''||:new.WORKFLAG||''','''||:new.ZXFLAG||''','''||v_jwdcode||''')';
when updating then--更新数据
v_sql := 'update ITEM_REC set '||
'PROTEAMNAME='''||replace(:new.PROTEAMNAME,'''','')||''''||
',PY='''||:new.PY||''''||
',PROID='''||:new.PROID||''''||
',JCTYPE='''||:new.JCTYPE||''''||
',WORKFLAG='''||:new.WORKFLAG||''''||
',ZXFLAG='''||:new.ZXFLAG||''''||
' where '||
'ID='||:old.ID||' and JWDCODE='''||v_jwdcode||'''';
when deleting then--删除数据
v_sql := 'delete from ITEM_REC t where t.ID='||:old.ID||' and t.JWDCODE='''||v_jwdcode||'''';
end case;
if v_sql is not null then--假设v_sql不为空。则将对应信息插入到synchro_tb_operate_log表中
insert into
synchro_tb_operate_log(sd_record_id,sd_record_sql,sd_flag,create_time)
values(SEQ_SYNCHRO_DATA.NEXTVAL,v_sql,0,to_char(sysdate,'YYYY-MM-DD HH24:MI:SS'));
end if;
exception
when others then--假设运行过程中出现异常,则将异常信息插入到SYNCHRO_DATA_EXCEP_LOG表中
v_exception := substr(sqlcode||'---'||sqlerrm, 1, 500);
insert into SYNCHRO_DATA_EXCEP_LOG
(ID,TRIGGER_NAME,EXCEPTION_INFO,EXCEPTION_TIME)
values
(sys_guid(),'Trigger_DICT_PROTEAM',v_exception,to_char(sysdate,'YYYY-MM-DD HH24:MI:SS'));
end TRIGGER_ITEM_REC;版权声明:本文博客原创文章,博客,未经同意,不得转载。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/117142.html原文链接:https://javaforall.cn
边栏推荐
- 信息系统项目管理师---第八章 项目质量管理
- [play with Linux] [docker] MySQL installation and configuration
- MySQL information schema learning (II) -- InnoDB table
- Systematic and detailed explanation of redis operation hash type data (with source code analysis and test results)
- 激进技术派 vs 项目保守派的微服务架构之争
- How to access localhost:8000 by mobile phone
- Learning and Exploration - Seamless rotation map
- 企业精益管理体系介绍
- Teach you to learn JS prototype and prototype chain hand in hand, a tutorial that monkeys can understand
- 手把手教你学会js的原型与原型链,猴子都能看懂的教程
猜你喜欢
腾讯T2大牛亲自讲解,跳槽薪资翻倍

VMware virtual machine cannot open the kernel device "\.\global\vmx86"

IC设计流程中需要使用到的文件

激进技术派 vs 项目保守派的微服务架构之争

Using clip path to draw irregular graphics

How to access localhost:8000 by mobile phone

冒烟测试怎么做

潇洒郎: AttributeError: partially initialized module ‘cv2‘ has no attribute ‘gapi_wip_gst_GStreamerPipe

腾讯T3大牛手把手教你,大厂内部资料

今日直播 | “人玑协同 未来已来”2022弘玑生态伙伴大会蓄势待发
随机推荐
深入分析,Android面试真题解析火爆全网
Spark foundation -scala
时钟轮在 RPC 中的应用
Using clip path to draw irregular graphics
【翻译】数字内幕。KubeCon + CloudNativeCon在2022年欧洲的选择过程
Learn to explore - use pseudo elements to clear the high collapse caused by floating elements
Tensorflow2.0 self defined training method to solve function coefficients
Documents to be used in IC design process
潇洒郎: AttributeError: partially initialized module ‘cv2‘ has no attribute ‘gapi_wip_gst_GStreamerPipe
In depth analysis, Android interview real problem analysis is popular all over the network
Simple application of VBA script in Excel
[infrastructure] deployment and configuration of Flink / Flink CDC (MySQL / es)
社招面试心得,2022最新Android高频精选面试题分享
终于可以一行代码也不用改了!ShardingSphere 原生驱动问世
The "white paper on the panorama of the digital economy" has been released with great emphasis on the digitalization of insurance
Vmware虚拟机无法打开内核设备“\\.\Global\vmx86“的解决方法
Social recruitment interview experience, 2022 latest Android high-frequency selected interview questions sharing
零基础入门PolarDB-X:搭建高可用系统并联动数据大屏
Excel 中VBA脚本的简单应用
《数字经济全景白皮书》保险数字化篇 重磅发布