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

时间:2009-11-08 20:02:36

标签: mysql

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

例如,如果mySQL检测到记录或记录集的更改,mySQL是否有办法将该查询语句添加到单独的表中,这样我们就可以跟踪更改?这将使“回滚”成为可能,因为每个查询(除SELECT之外)都能够从第一行重建数据库。对?

我使用PHP与mySQL交互。

3 个答案:

答案 0 :(得分:3)

您需要启用MySQL BinLog。这会自动将所有更改语句记录到二进制日志中,可以根据需要进行回复。

另一种方法是通过Triggers

使用审核功能

答案 1 :(得分:2)

了解transaction logging in MySQL。这是MySQL的built in

答案 2 :(得分:1)

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

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