sql >> Databáze >  >> RDS >> Mysql

Jak vytvořit spouštěče pro přidání událostí změn do tabulek protokolu auditu

Mohu vám poskytnout určitý druh algoritmu, na kterém můžete pracovat, většina základní práce je již hotová:

Může to být vaše tabulka auditu, měla by přidat sloupec s časovým razítkem jako datum změny nebo další informace podle vašich požadavků:

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

To lze použít jako referenční spouštěč; všimněte si, že pro každou tabulku bude samostatný spouštěč:

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;
|

Můžete mít více příkazů vložení, jeden pro každý sloupec. Pokud chcete omezit nevkládání dat, která se nemění, můžete ve spouštěči provést následující změnu:

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

Dejte vědět, pokud potřebujete další informace.



  1. mysql + aktualizace top n

  2. procházení html stránky pomocí php?

  3. Kontingenční tabulka pomocí MySQL

  4. Správa uživatelských účtů, role, oprávnění, autentizace PHP a MySQL - 2. část