当前位置: 首页 > article >正文

Mysql数据库中,监测某张表中某字段的修改情况(被哪个ip所修改、新老值)

在Mysql数据库中,通过写一个触发器,来监测某张表(q_device)字段(run_status)的改变情况。

【示例】
-- 1. 创建监测日志表
CREATE TABLE change_log (
    id INT AUTO_INCREMENT PRIMARY KEY,
    table_name VARCHAR(255),
    column_name VARCHAR(255),
    old_value TEXT,
    new_value TEXT,
    modified_by_ip VARCHAR(45),
    modified_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- 2. 创建触发器 
DELIMITER $$
CREATE TRIGGER monitor_field_update
AFTER UPDATE ON q_device
FOR EACH ROW
BEGIN
    -- 获取客户端的 IP(从 MySQL 的 user() 函数解析)
    DECLARE user_ip VARCHAR(45);
    SET user_ip = SUBSTRING_INDEX(USER(), '@', -1);

-- 检查具体字段的更新,并记录到日志表
    IF OLD.run_status != NEW.run_status THEN
        INSERT INTO change_log (table_name, column_name, old_value, new_value, modified_by_ip)
        VALUES ('q_device', 'run_status', OLD.run_status, NEW.run_status, user_ip);
    END IF;
END$$
DELIMITER ;

监控记录将保存到change_log表当中。


http://www.kler.cn/a/456977.html

相关文章:

  • STM32-笔记23-超声波传感器HC-SR04
  • 蓝牙|软件 Qualcomm S7 Sound Platform开发系列之初级入门指南
  • 打造RAG系统:四大向量数据库Milvus、Faiss、Elasticsearch、Chroma 全面对比与选型指南
  • Idea创建JDK17的maven项目失败
  • ABS函数:C语言与Excel中的绝对值计算
  • 学习solid works第八课------工程图
  • InceptionNeXt: When Inception Meets ConvNeXt
  • 不安全物联网的轻量级加密:综述
  • 【最新】宇鹿家政小程序系统v1.1.3高级版源码全开源+搭建环境
  • 太通透了,Android 流程分析 蓝牙enable流程(stack/hidl)
  • 配置vue2项目中组件命名忽略大小写
  • ch.h:38:10:致命错误: rpc/rpc.h:没有那个文件或目录38 I#include <rpc/rpc.h>
  • 【Java基础面试题041】Java中的深拷贝和浅拷贝有什么区别?
  • 解决tomcat双击startup.bat乱码的几种方法
  • 前端+后端之网站部署(Front End and Backend Website Deployment)
  • TCP Analysis Flags 之 TCP Out-Of-Order
  • C++的第一个程序
  • 1228java面经
  • Mybatis插件better-mybatis-generator的下载与使用
  • 为什么深度学习和神经网络要使用 GPU?
  • 数据标注的流程
  • C#中的属性索引器(Indexer)
  • JavaScript 箭头函数
  • 强化特种作业管理,筑牢安全生产防线
  • 【微信小程序】4|搜索框-历史搜索 | 我的咖啡店-综合实训
  • Numpy指南:解锁Python多维数组与矩阵运算(下)