记一次触发器拦截更新操作

1、背景

业务上有一张表记录仓库和经纬度的,正常情况不怎么做变更;业务反馈经常出现经纬度被更新的情况,操作人都是接口或者admin,人工运维后又会被接口/admin覆盖更新掉

2、过程

遇到这种情况,我的第一反应是定位代码更新语句的位置,对逻辑进行梳理改造,至少在更新的地方打个日志,出现数据异常变更时能够追溯一下,定位入口;

但是,梳理的过程发现,更新的地方比较多,而且项目用的是hibernate不是mybatis,更新的时候都是通用方法,定位难度很大;

业务着急修复,经纬度被覆盖更新会阻塞业务流程

3、解决

最终决定先用oracle的触发器,拦截非法的更新操作,思路就是当操作人不是指定人员的时候,将更新语句中的经纬度替换成原来的值,曲线救国,看似执行成功,实际值没有变

CREATE OR REPLACE TRIGGER base_location_update_triggerBEFORE UPDATE ON base_locationFOR EACH ROW
BEGINIF (:NEW.last_operator not in ('lisi','zhangsan')) THEN:NEW.longitude := :Old.longitude;:NEW.latitude := :Old.latitude;END IF;
END;

4、过程的坑

1)最开始是当发现操作人不是zhangsan时,直接阻断
raise_application_error(-20001, ‘operator必须为张三’);
但是这样的话,代码调用的时候就会报错,导致后续流程无法流转;
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/69100.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker镜像管理

创建阿里云容器镜像仓库: 访问地址:https://www.aliyun.com/search?sceneall&kACR,点击立即开通 在实例列表选择个人实例,根据提示创建命名空间、镜像仓库名称等。(创建时,代码源我选择的是本地&…

C++ 学习系列 二 -- RAII 机制

一 什么是 RAII ? RAII (Resource Acquisition Is Initialization)是由c之父Bjarne Stroustrup提出的,中文翻译为资源获取即初始化, 其含义是:用局部对象来管理资源的技术,这里所说的资源指的是…

创意转写,文字催生:介绍有用的录音实时转写功能

我有一个朋友叫小敏,是一名记者。她在采访工作中常常遇到一个难题:采访过程中非常容易错过重要信息,到底要用哪款手机录音实时转写软件才能解决这个问题?于是有一天,她听说了一款神奇的录音转文字软件,决定…

七、Linux操作系统下,whichfind如何使用?

1、which命令 (1)语法:which 参数 (2)参数:要查找的命令 (3)示例: 2、find命令 (1)find 起始路径 -name “被查找的文件名” 注意&#xff1…

python进阶做题日记365-1,

第一天: 1:题目名称:代写匿名信时间限制:1000ms内存限制:256M 题目描述小Q想要匿名举报XX领导不务正业! 小Q害怕别人认出他的字迹。 他选择从报纸上剪裁下来英文字母组成自己的举报信。 现在小Q找来了报纸…

re学习(32)【绿城杯2021】babyvxworks(浅谈花指令)

链接:https://pan.baidu.com/s/1msA5EY_7hoYGBEema7nWwA 提取码:b9xf wp:首先找不到main函数,然后寻找特殊字符串, 交叉引用 反汇编 主函数在sub_3D9当中,但是IDA分析错了 分析错误后,删除函数 创建函数 操…

面试热题(合并两个有序列表)

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 合并链表这类型题也是比较经典的题了,因为链表是由指针相互指向而确定位置,所以我们只需要改变某些节点的指针便可以做到对链表进行排序 今天这个方法…

【动画】p60动画蓝图、播放蒙太奇、打包

p60动画蓝图、播放蒙太奇、打包 p60动画蓝图、播放蒙太奇、打包添加动画动画蓝图使模型使用动画蓝图奔跑跳舞蒙太奇 移动打断蒙太奇打包退出游戏 p60动画蓝图、播放蒙太奇、打包 添加动画 右键内容浏览器-》动画-》混合空间1D-》选择新的角色的骨骼 如下图在资产详情修改参数…

Prometheus的搭建与使用

一、安装Prometheus 官网下载地址:Download | Prometheus 解压:tar -zxvf prometheus-2.19.2.linux-amd64.tar.gz重命名: mv prometheus-2.19.2.linux-amd64 /home/prometheus进入对应目录: cd /home/prometheus查看配置文件&am…

新能源汽车需要检测哪些项目

截至2022年底,中国新能源车保有量达1310万辆,其中纯电动汽车保有量1045万辆。为把好新能源汽车安全关,我国新能源汽车除了完善的强制性产品认证型式实验外,还建立了“车企-地方-国家”逐级上报的三级监管体系实行新能源汽车全生命…

Docker容器与虚拟化技术:Docker资源控制、数据管理

目录 一、理论 1.资源控制 2.Docker数据管理 二、实验 1.Docker资源控制 2.Docker数据管理 三、问题 1.docker容器故障导致大量日志集满,造成磁盘空间满 2、当日志占满之后如何处理 四、总结 一、理论 1.资源控制 (1) CPU 资源控制 cgroups&#xff0…

[论文笔记]Glancing Transformer for Non-Autoregressive Neural Machine Translation

引言 这是论文Glancing Transformer for Non-Autoregressive Neural Machine Translation的笔记。 传统的非自回归文本生成速度较慢,因为需要给定之前的token来预测下一个token。但自回归模型虽然效率高,但性能没那么好。 这篇论文提出了Glancing Transformer,可以只需要一…