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.