填报智能提交,比如将金额由1改为2,怎么用字段将修改过的数据标识出来。

id             字段

id1        金额:1改为2

FineReport yzmcGxHZ8466764 发布于 2023-9-8 14:31
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
用户k6280494Lv6专家互助
发布于2023-9-8 14:35(编辑于 2023-9-8 14:37)

这个得用触发器才能搞吧

在MySQL中,可以使用触发器(Trigger)来标记修改过的数据列。触发器是一种数据库对象,它与表相关联,当表上发生特定事件(如插入、更新或删除)时,触发器会自动执行定义的操作。

下面是一个示例,演示如何使用触发器来标记修改过的数据列:

  1. 创建一个用于记录修改历史的表。

sql复制代码

CREATE TABLE data_history (
id INT PRIMARY KEY AUTO_INCREMENT,
table_name VARCHAR(255),
column_name VARCHAR(255),
old_value TEXT,
new_value TEXT,
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP  
);
  1. 创建一个触发器,在更新数据列时触发记录修改历史。

sql复制代码

DELIMITER //  
CREATE TRIGGER track_updates AFTER UPDATE ON your_table
FOR EACH ROW  
BEGIN  
INSERT INTO data_history (table_name, column_name, old_value, new_value)
VALUES (OLD.table_name, OLD.column_name, OLD.column_name_value, NEW.column_name_value);
END //  
DELIMITER ;

在上述示例中,your_table 是要监视更新的表名。触发器会在每次更新该表时,执行记录修改历史的操作。OLD 和 NEW 是MySQL中特殊的关键字,表示更新前后的值。通过将它们与相应的列名和值配对,我们可以轻松获取旧值和新值。

现在,每当更新your_table表中的数据列时,触发器都会将修改的历史记录插入到data_history表中,包括表名、列名、旧值和新值以及更新时间戳。

最佳回答
0
CD20160914Lv8专家互助
发布于2023-9-8 14:35(编辑于 2023-9-8 14:36)
最佳回答
0
runnerLv7资深互助
发布于2023-9-8 14:36
  • 4关注人数
  • 240浏览人数
  • 最后回答于:2023-9-8 14:37
    请选择关闭问题的原因
    确定 取消
    返回顶部