• ベストアンサー

変更のあったテーブルを見つける

データーベースにあるテーブル全てをモニターして、色々な処理が終わった後に変更があったテーブルのみを調べるにはどうしたらいいでしょうか。何か特別なプログラムが必要ですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.1

「変更」とおっしゃっているのが、DDLレベル(CREATE,ALTER etc)の話なのか、DMLレベル(INSERT,UPDATE,DELETE)なのかによって方法は全然変わります。 DDLレベル(CREATE,ALTER etc)ならディクショナリを見ればわかります。 ORACLEなら DBA_OBJECTS、SQL Server なら sysobjects、MySQL なら INFORMATION_SCHEMA など。 DMLレベル(INSERT,UPDATE,DELETE)だと、「あらかじめ何かを仕込んでおかないと、後から確認する術はない」と考えておいた方がよいです。 仕込んでおくのは何かと言うと、 ・一般的にはINSERT,UPDATE,DELETE時に履歴テーブルへのINSERT  (トリガーでINSERTする場合やアプリケーション側でINSERTする場合など様々) ・アプリケーション側で変更時にログに出力 ・他にはORACLEであれば AUDIT などの機能 などが上げられます。

one-eyed
質問者

お礼

AUDITでうまくできました。ありがとうございます。

関連するQ&A