Mogę podać rodzaj algorytmu do pracy, większość prac ziemnych już została wykonana:
Może to być Twoja tabela audytu, należy dodać kolumnę sygnatury czasowej jako datę modyfikacji lub więcej informacji zgodnie z wymaganiami:
CREATE TABLE audit (
old_data VARCHAR(100),
new_data VARCHAR(100),
tbl_name VARCHAR(100)
)
|
Może to służyć jako wyzwalacz odniesienia; zauważ, że dla każdej tabeli będzie osobny wyzwalacz:
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;
|
Możesz mieć wiele instrukcji wstawiania, po jednej dla każdej kolumny. Jeśli chcesz wprowadzić ograniczenie dotyczące niewstawiania danych, które nie zostały zmienione, możesz dokonać następującej zmiany w wyzwalaczu:
IF(OLD.column_name <> NEW.column_name) THEN
--Your insert query here
ELSE
--NOOP
END IF;
Daj znać, jeśli potrzeba więcej informacji.