3

多くの場合、スキーマがまだ理解していない巨大なRDBMSを使用して新しいプロジェクトに取り組んでいます。データベースでチェックポイントをマークし、アプリで何かを実行してから、データベースに戻って、どのテーブルが変更されたか(理想的には、どのレコードが変更されたか)を確認できるようにしたいと思います。

SQLでこのようなことをする方法はありますか?私はこれを見つけましが、それはMSSQLのみです(私は使用していません)。

超効率的である必要はありません。これは開発ボックスに表示されるだけで、必要に応じて数秒待つことができますが、「DB全体を2回ダンプして、結果を比較する」よりも優れたものを探しています。

4

6 に答える 6

2

DBMSがクエリログをサポートしている場合は、それをオンにしてログを末尾に追加します。

于 2009-02-10T22:09:51.080 に答える
2

SQL Server と Oracle の両方に、「変更データ キャプチャ」と呼ばれる有効化できる機能があります。SQL Server を使用していないとおっしゃいましたが、Oracle を使用している場合はまだ希望があります。おそらく、使用している dbms について言及する必要があります。

于 2009-02-10T22:10:57.067 に答える
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 に答える
0

私はかなり前に、あなたとサーバーの間にある MySQL プロキシ ツールに出くわしたことがあります。

すべての SQL DB で機能するソリューションが 1 つ見つかるとは思えません。(前後のすべてのテーブルを .SQL または .CSV ファイルにダンプし、それらを比較しますか?)

于 2009-02-10T22:23:02.763 に答える