代码之家  ›  专栏  ›  技术社区  ›  Ken

SQL中有没有一种方法可以问“什么改变了?”?

  •  3
  • Ken  · 技术社区  · 17 年前

    我经常发现自己在一个新项目中使用一个巨大的RDBMS,但我还不了解它的模式。我希望能够在数据库中标记一个检查点,在应用程序中执行一些操作,然后返回数据库,询问哪些表发生了更改(理想情况下,哪些记录发生了更改)。

    有没有一种方法可以用SQL做类似的事情?我发现 this ,但它只是MSSQL(我不使用)。

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

    6 回复  |  直到 9 年前
        1
  •  2
  •   chaos    17 年前

    如果您的DBMS支持查询日志记录,请打开它并跟踪日志。

        2
  •  2
  •   Joel Coehoorn    17 年前

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

        3
  •  0
  •   Eli    17 年前

    我怀疑您是否会遇到一个可以在每个SQL DB上运行的解决方案。(在前后将所有表转储为.SQL或.CSV文件,并将它们区分开来?)

        4
  •  0
  •   Svante Svenson    17 年前
    • 检查是否可以连接到应用程序的数据访问层来记录事情
    • 或者如果它支持从机箱中注销。(我认为Windows上的ODBC支持此功能。)
        5
  •  0
  •   Bendit Bendit    17 年前

        6
  •  0
  •   Pierre    17 年前

    在mysql中,我使用一个列

    modified timestamp
    

    检索已更改的行的步骤