执行 DELETE 查询时备份 MySQL

Posted

技术标签:

【中文标题】执行 DELETE 查询时备份 MySQL【英文标题】:Back up MySQL when DELETE query is performed 【发布时间】:2013-10-24 21:32:16 【问题描述】:

这有点牵强,但我想知道是否可以更改 mysql 的行为,以便在执行 DELETE 查询时,会发生其他事情——例如,要删除的行被添加到备份中数据库。

基本上,我有一个 WordPress 网站,我希望能够从中恢复数据。在WP中,您可以先删除帖子并将其放入垃圾箱,但用户和其他数据将被永久删除。

【问题讨论】:

【参考方案1】:

您可以创建一个trigger,当记录从您的表中删除时触发:

CREATE TRIGGER my_trigger BEFORE DELETE ON my_table FOR EACH ROW
  INSERT INTO backup_table
    (col1, col2, col3)
  VALUES
    (OLD.col1, OLD.col2, OLD.col3)
;

【讨论】:

除此之外还有什么触发方式?我的目标是清除数据库空间。使用触发器,我将再次在同一台服务器上使用临时表或 csv 文件。谢谢

以上是关于执行 DELETE 查询时备份 MySQL的主要内容,如果未能解决你的问题,请参考以下文章

DELETE 查询导致“查询中断”MySQL Workbench?

为啥 MySQL DELETE 无法对子查询使用索引?

在 Oracle 中执行 DELETE 查询时如何重现异常

mysql-回复DELETE数据

sc delete mysql命令执行失败

mysql 的delete from 和update子查询限制