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