Posso fornirti una sorta di algoritmo su cui lavorare, la maggior parte del lavoro di base è già stato fatto:
Questa può essere la tua tabella di controllo, dovrebbe aggiungere la colonna timestamp come data modificata o ulteriori informazioni secondo i tuoi requisiti:
CREATE TABLE audit (
old_data VARCHAR(100),
new_data VARCHAR(100),
tbl_name VARCHAR(100)
)
|
Questo può essere utilizzato come trigger di riferimento; nota che ci sarà un trigger separato per ogni tabella:
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;
|
Puoi avere più istruzioni di inserimento una per ogni colonna. Se vuoi mettere una restrizione per non inserire i dati che non vengono modificati, puoi apportare le seguenti modifiche nel trigger:
IF(OLD.column_name <> NEW.column_name) THEN
--Your insert query here
ELSE
--NOOP
END IF;
Facci sapere se sono necessarie ulteriori informazioni.