3

我经常发现自己正在使用一个我还不了解其架构的巨型 RDBMS 进行新项目。我希望能够在数据库中标记一个检查点,在应用程序中做一些事情,然后返回数据库并询问哪些表发生了变化(理想情况下,哪些记录发生了变化)。

有没有办法用 SQL 做这样的事情?我找到了这个,但它只是 MSSQL(我没有使用)。

它不需要超级高效。它只是在我的开发盒上,如果需要,我可以等待几秒钟,但我正在寻找比“两次转储整个数据库并区分结果”更好的东西。

4

6 回答 6

2

如果您的 DBMS 支持查询日志记录,请将其打开并 tail -f 记录日志。

于 2009-02-10T22:09:51.080 回答
2

SQL Server 和 Oracle 都有一个可以启用的功能,称为“更改数据捕获”。您说您没有使用 SQL Server,但如果您使用的是 Oracle,那么这里仍有希望。也许您应该提及您使用的 dbms。

于 2009-02-10T22:10:57.067 回答
0

我很漂亮我曾经遇到过一个位于您和服务器之间的 MySQL 代理工具。

我怀疑您会遇到一种适用于每个 SQL 数据库的解决方案。(前后将所有表转储到 .SQL 或 .CSV 文件并进行比较?)

于 2009-02-10T22:23:02.763 回答
0
  • 将触发器添加到记录所有更改的所有表。
  • 检查您是否可以连接到应用程序的数据访问层以记录事物
  • 或者它是否支持开箱即用的注销。(我认为 Windows 上的 ODBC 支持这一点。)
于 2009-02-10T22:31:24.320 回答
0

您最好的选择是查看您的 RDBMS 是否提供可以执行此操作的专有功能,或者添加可以记录事件的更新触发器。

于 2009-02-10T22:33:07.373 回答
0

在mysql中,我使用一个列

modified timestamp

检索更改的行

于 2009-02-10T22:35:06.853 回答