Oracle データベースには、テーブルの変更時刻をクエリするための次のメソッドが用意されています。 LAST_CHANGE 疑似列: テーブル内のレコードの最終変更タイムスタンプを返します。 USER_TAB_MODIFICATIONS ビュー: 最終変更時刻など、テーブル構造の変更に関する情報を保存します。 AUDIT TABLE コマンド: テーブル変更の監査を有効または無効にし、操作のタイムスタンプを記録します。 FLASHBACK QUERY: テーブルの特定の時点のデータを表示できますが、フラッシュバック機能を有効にする必要があります。
Oracle データベースのテーブルの変更時刻をクエリする方法
Oracle データベースには、さまざまな方法が用意されています。クエリ テーブル 内のレコードまたはテーブルの最終変更時刻。
1. LAST_CHANGE
LAST_CHANGE
疑似列を使用して、テーブル内の行または列の最終変更タイムスタンプを返します。
<code class="sql">SELECT LAST_CHANGE FROM table_name;</code>
2. USER_TAB_MODIFICATIONS ビューを使用します。
USER_TAB_MODIFICATIONS
ビューには、列の変更、インデックスの追加または削除など、テーブル構造の変更に関する情報が保存されます。など。
<code class="sql">SELECT LAST_DDL_TIME FROM USER_TAB_MODIFICATIONS WHERE TABLE_NAME = 'table_name';</code>
3. AUDIT TABLE コマンド
AUDIT TABLE
コマンドを使用して、テーブル変更の監査を有効または無効にします。有効にすると、データベースは、操作のタイムスタンプを含むすべての DML 操作 (挿入、更新、削除) をログに記録します。
監査を有効にするには:
<code class="sql">AUDIT TABLE table_name;</code>
監査証跡をクエリするには:
<code class="sql">SELECT TIMESTAMP, OPERATION, USERNAME FROM AUDIT_TRAIL WHERE TABLE_NAME = 'table_name';</code>
4. FLASHBACK QUERY
を使用します。 FLASHBACK QUERY
関数を使用すると、特定の時点でのテーブルまたはビューのデータを表示できます。これを使用して、テーブルの変更履歴を表示できます。
<code class="sql">SELECT * FROM table_name AS OF TIMESTAMP AS_OF_TIMESTAMP;</code>
注:
LAST_CHANGE
疑似列の場合、意味のある値は、行に変更された行がある場合にのみ返されます。テーブル 。 USER_TAB_MODIFICATIONS
ビューは構造的な変更のみを記録し、データの変更は記録しません。 AUDIT TABLE
コマンドには管理者権限が必要です。 フラッシュバック クエリ
フラッシュバック機能を有効にし、十分なフラッシュバック領域が必要です。 以上がOracle データベースが変更されたときにクエリを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。