代码之家  ›  专栏  ›  技术社区  ›  netrox

在MySQL中添加每个更新、删除、插入查询到新记录

  •  0
  • netrox  · 技术社区  · 15 年前

    如果记录发生更改,是否可以将更改数据(更新、删除、插入)的查询透明地添加到“历史记录”表中?

    例如,如果MySQL检测到一条记录或一组记录中有更改,那么有没有方法让MySQL将该查询语句添加到单独的表中,以便跟踪更改?这将使“回滚”成为可能,因为每个查询(select除外)都能够从第一行重建数据库。对吗?

    我使用PHP与MySQL进行交互。

    3 回复  |  直到 10 年前
        1
  •  3
  •   Thomas Jones-Low    15 年前

    你需要启用mysql BinLog . 这会自动将所有的变更语句记录到一个二进制日志中,可以根据需要进行回复。

    另一种选择是通过 Triggers

        2
  •  2
  •   marcc    15 年前

    阅读有关 transaction logging in MySQL .这是 built in 到MySQL。

        3
  •  1
  •   jkndrkn    15 年前

    MySQL具有日志记录功能,可用于记录所有查询。由于这些日志可以快速增长,所以我通常将其关闭,但在调试时打开它很有用。

    如果您希望跟踪对记录的更改,以便在出现错误情况时“回滚”一系列查询,那么您可能需要查看MySQL对事务的本机支持。