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