触发审计跟踪表

时间:2017-10-28 03:38:13

标签: mysql sql database database-trigger audit-trail

我正在尝试为我的“考试”表创建审核跟踪,其中显示了对表中成绩所做的任何更改。

所以我坚持创建触发器,显示更改当前成绩的用户名和日期。

我一直在四处寻找,但无法找到任何东西。任何帮助都将非常感激。

原始表:

      CREATE TABLE exam (
      student_no INT NOT NULL,
      exam_code CHAR(2) NOT NULL,
      grade TINYINT NULL,
      FOREIGN KEY (student_no) REFERENCES student (student_no),
      FOREIGN KEY (exam_code) REFERENCES course (exam_code));

我创建的审计表:

      CREATE TABLE Audit (
      student_no INT NOT NULL,
      exam_code CHAR(2) NOT NULL,
      old_grade TINYINT NULL,
      updated_grade TINYINT NULL,
      Current_username VARCHAR(30),
      Date_updated DATETIME
      );


      CREATE TRIGGER audit_trail
      ??????

1 个答案:

答案 0 :(得分:0)

触发下方可以选择。

CREATE TRIGGER audit_trail
AFTER UPDATE ON exam
FOR EACH ROW 
BEGIN 
INSERT INTO Audit values(OLD.student_no,OLD.exam_code,OLD.grade,NEW.grade,CURRENT_USER(), CURRENT_TIMESTAMP);  
END;

exam表中进行任何更新后,上述触发器会将所有相关信息插入Audit表。

您可以查看演示 here