Jag kan ge dig en sorts algoritm att arbeta efter, det mesta av markarbetet är redan gjort:
Detta kan vara din granskningstabell, bör lägga till en tidsstämpelkolumn som ändrat datum eller mer information enligt dina krav:
CREATE TABLE audit (
old_data VARCHAR(100),
new_data VARCHAR(100),
tbl_name VARCHAR(100)
)
|
Detta kan användas som en referensutlösare; Observera att det kommer att finnas en separat trigger för varje tabell:
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;
|
Du kan ha flera infoga uttalanden en för varje kolumn. Om du vill sätta en begränsning för att inte infoga data som inte ändras kan du göra följande ändring i triggern:
IF(OLD.column_name <> NEW.column_name) THEN
--Your insert query here
ELSE
--NOOP
END IF;
Meddela om mer information krävs.