mysql - 在某些表中记录删除行 | 备份删除的数据
问题描述
我想记录某些表中已删除的数据。从日志中我可以恢复已删除的数据。Mysql 支持开箱即用的类似功能吗?理想情况下,获取带有“插入”的 sql 文件。
解决方案
There is a partial solution. For every table you want to audit, create BEFORE DELETE trigger and an audit table. See code below.
Keep in mind that triggers work only for DELETE FROM command. TRUNCATE bypass triggers and your deletes will not be audited.
DELIMITER //
CREATE TRIGGER table1_before_delete
BEFORE DELETE
ON table1 FOR EACH ROW
BEGIN
-- Insert record into audit table
INSERT INTO table1_audit ( table1_id, deleted_date) VALUES ( OLD.id, NOW());
END; //
DELIMITER ;
推荐阅读
- python - 在我的图中绘制 Cartopy 中的文本
- linux - 如何在 Linux 中将日志打印到文件和 cli 中
- python - Python脚本在虚拟环境中从终端运行,但无法找到带有VS Code播放按钮的熊猫
- duplicates - DocuSign API 为文档创建重复条目
- python - 避免记录模块在每次运行代码时将调试信息附加到控制台
- nouislider - noUISlider 在触控设备(Android 和 iOS)中不流畅
- python - 按组分组和连接值
- reactjs - 反应JS | 从 URL 获取数据返回 null
- java - 将 SPARQL 的结果写入 java 中的文件
- grpc - 通过 Envoy 过滤掉某些 grpc 异常?