Tôi có thể cung cấp cho bạn một loại thuật toán để giải quyết, hầu hết các công việc cơ bản đã được thực hiện:
Đây có thể là bảng kiểm tra của bạn, nên thêm cột dấu thời gian làm ngày sửa đổi hoặc thêm thông tin theo yêu cầu của bạn:
CREATE TABLE audit (
old_data VARCHAR(100),
new_data VARCHAR(100),
tbl_name VARCHAR(100)
)
|
Điều này có thể được sử dụng như một kích hoạt tham chiếu; lưu ý rằng sẽ có một trình kích hoạt riêng cho mỗi bảng:
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;
|
Bạn có thể có nhiều câu lệnh chèn, một câu lệnh cho mỗi cột. Nếu bạn muốn hạn chế việc không chèn dữ liệu không bị thay đổi, bạn có thể thực hiện thay đổi sau trong trình kích hoạt:
IF(OLD.column_name <> NEW.column_name) THEN
--Your insert query here
ELSE
--NOOP
END IF;
Hãy cho biết nếu cần thêm thông tin.