我有一個要求,關于更新員工表格。我必須跟蹤用戶更新了哪些欄位。我們正在保存的員工表格共有 6 個表。當用戶更新任何列時,我想跟蹤他更改的舊值和新值。
為此,我創建了一個審計日志表,其中我保留了諸如 id、employee_id、table_name、old_value、new_value 之類的欄位
所以假設當用戶編輯員工表格中的兩列時,即名字和姓氏。我想將這兩條記錄分別保存在兩個不同行的舊值列中。即在第一條記錄中,它應該得到名字,而在第二條記錄中它應該得到姓氏。& 我更改的任何列與 6 個表中的任何一個相關,然后它應該在我的觸發器表中更新 請建議我如何獲取此查詢
下面我寫了一個基本的觸發器
CREATE TRIGGER advance_audit
BEFORE UPDATE ON employee
FOR EACH ROW
INSERT INTO employees_audit
SET action = 'update', old_name= OLD.firstname, old_name = OLD.lastname;
uj5u.com熱心網友回復:
CREATE TRIGGER advance_audit
AFTER UPDATE ON employee
FOR EACH ROW
BEGIN
IF NEW.firstname <> OLD.firstname THEN
INSERT INTO employees_audit (action, column_name, old_name, new_name, operator)
VALUES ('update', 'firstname', OLD.firstname, NEW.firstname, SYSTEM_USER());
END IF;
IF NEW.lastname <> OLD.lastname THEN
INSERT INTO employees_audit (action, column_name, old_name, new_name, operator)
VALUES ('update', 'lastname', OLD.lastname, NEW.lastname, SYSTEM_USER());
END IF;
-- the same blocks for each another column to be audited
END
使用 AFTER 觸發器。如果查詢失敗,它不會保存到日志中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/355534.html
上一篇:Laravel中的多張圖片上傳
