我经常发现自己正在使用一个我还不了解其架构的巨型 RDBMS 进行新项目。我希望能够在数据库中标记一个检查点,在应用程序中做一些事情,然后返回数据库并询问哪些表发生了变化(理想情况下,哪些记录发生了变化)。
有没有办法用 SQL 做这样的事情?我找到了这个,但它只是 MSSQL(我没有使用)。
它不需要超级高效。它只是在我的开发盒上,如果需要,我可以等待几秒钟,但我正在寻找比“两次转储整个数据库并区分结果”更好的东西。
如果您的 DBMS 支持查询日志记录,请将其打开并 tail -f 记录日志。
SQL Server 和 Oracle 都有一个可以启用的功能,称为“更改数据捕获”。您说您没有使用 SQL Server,但如果您使用的是 Oracle,那么这里仍有希望。也许您应该提及您使用的 dbms。
我很漂亮我曾经遇到过一个位于您和服务器之间的 MySQL 代理工具。
我怀疑您会遇到一种适用于每个 SQL 数据库的解决方案。(前后将所有表转储到 .SQL 或 .CSV 文件并进行比较?)
您最好的选择是查看您的 RDBMS 是否提供可以执行此操作的专有功能,或者添加可以记录事件的更新触发器。
在mysql中,我使用一个列
modified timestamp
检索更改的行