【问题标题】:trigger for audit trail table审计跟踪表的触发器
【发布时间】:2017-10-28 03:38:13
【问题描述】:

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

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

我一直在四处寻找,但找不到任何东西。任何帮助将不胜感激。

原表:

      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
      ??????

【问题讨论】:

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


    【解决方案1】:

    下面的触发器可以是一个选项。

    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

    【讨论】:

      猜你喜欢
      • 2011-02-16
      • 2021-06-22
      • 1970-01-01
      • 1970-01-01
      • 2018-01-31
      • 1970-01-01
      • 2014-04-19
      • 2011-12-29
      相关资源
      最近更新 更多