sql >> データベース >  >> RDS >> Mysql

変更イベントを監査ログテーブルに追加するためのトリガーを作成する方法

    作業するための一種のアルゴリズムを提供できます。基本的な作業のほとんどはすでに完了しています:

    これは監査テーブルにすることができます。タイムスタンプ列を変更日として追加するか、要件に応じて詳細情報を追加する必要があります。

    CREATE TABLE audit (
         old_data VARCHAR(100),
         new_data VARCHAR(100),
         tbl_name VARCHAR(100)
    )
    |
    

    これは、参照トリガーとして使用できます。テーブルごとに個別のトリガーがあることに注意してください:

    CREATE TRIGGER testtrigger BEFORE UPDATE ON <table_name>
      FOR EACH ROW BEGIN
        INSERT INTO audit(old_data, new_data, tbl_name) VALUES (OLD.first_name, NEW.first_name, "testtable");
      END;
    |
    

    列ごとに1つずつ複数の挿入ステートメントを設定できます。変更されていないデータを挿入しないように制限する場合は、トリガーで次の変更を行うことができます。

    IF(OLD.column_name <> NEW.column_name) THEN
        --Your insert query here
    ELSE
        --NOOP
    END IF;
    

    さらに情報が必要な場合はお知らせください。



    1. Soundex、Jaro Winkler、およびEdit Distance(UTL_MATCH)を使用したOracleの重複列値の照合

    2. 接続プールを使用した後でも、あまりにも多くの同時接続を処理するにはどうすればよいですか?

    3. 警告:mysqli_connect():(HY000 / 1045):ユーザー'root' @'localhost'のアクセスが拒否されました(パスワードを使用:NO)

    4. MySqlDbがOperandをスローする場合、insertignoreステートメントに1つの列が含まれている必要があります