Eu posso fornecer a você um tipo de algoritmo para trabalhar, a maior parte do trabalho básico já está feito:
Esta pode ser sua tabela de auditoria, deve adicionar coluna de carimbo de data/hora como data de modificação ou mais informações de acordo com seus requisitos:
CREATE TABLE audit (
old_data VARCHAR(100),
new_data VARCHAR(100),
tbl_name VARCHAR(100)
)
|
Isso pode ser usado como um gatilho de referência; observe que haverá um gatilho separado para cada tabela:
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;
|
Você pode ter várias instruções de inserção, uma para cada coluna. Se você quiser colocar uma restrição de não inserir os dados que não forem alterados você pode fazer a seguinte alteração na trigger:
IF(OLD.column_name <> NEW.column_name) THEN
--Your insert query here
ELSE
--NOOP
END IF;
Informe se forem necessárias mais informações.