2009-11-08 86 views
0

一个新的记录有没有一种方法,如果有在记录的变化,即改变了数据的查询(更新,删除,插入)可以被添加到一个“历史“表格透明吗?添加每次更新,删除,插入查询在MySQL

例如,如果MySQL检测记录的改变或记录集,是有关于MySQL的方式来添加查询语句到一个单独的表,这样一来,我们可以跟踪变化?这将使“回滚”成为可能,因为每个查询(除了SELECT)都能够从其第一行重建数据库。对?

我使用PHP与mySQL进行交互。

回答

3

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

替代方案是使用审计功能通过Triggers

1

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

如果您正在寻找跟踪更改记录,这样如果有些错误情况提出了自己可以“回滚”查询的序列,那么你可能想看看MySQL的交易的原生支持。