Jeg kan give dig en slags algoritme at arbejde efter, det meste af grundarbejdet er allerede udført:
Dette kan være din revisionstabel, bør tilføje tidsstempelkolonnen som ændret dato eller flere oplysninger i henhold til dine krav:
CREATE TABLE audit (
old_data VARCHAR(100),
new_data VARCHAR(100),
tbl_name VARCHAR(100)
)
|
Dette kan bruges som en referenceudløser; Bemærk, at der vil være en separat trigger for hver tabel:
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 have flere indsæt sætninger en for hver kolonne. Hvis du vil sætte en begrænsning for ikke at indsætte data, der ikke er ændret, kan du foretage følgende ændring i triggeren:
IF(OLD.column_name <> NEW.column_name) THEN
--Your insert query here
ELSE
--NOOP
END IF;
Giv besked, hvis der er behov for flere oplysninger.