在某些表中记录删除行|备份已删除的数据

时间:2018-10-15 10:10:32

标签: mysql mysql-5.7

我要记录某些表中的已删除数据。从日志中我可以恢复已删除的数据。 Mysql支持类似的功能吗?理想情况下,使用“插入”获取一个sql文件。

1 个答案:

答案 0 :(得分:1)

有部分解决方案。 对于要审核的每个表,创建BEFORE DELETE触发器和一个审核表。参见下面的代码。

请记住,触发器仅对DELETE FROM命令起作用。 TRUNCATE跳过触发器,您的删除将不被审核。

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 ;