不是一个完整的答案,但这可能足以让您朝着正确的方向开始......
DELIMTER $$
CREATE TRIGGER stud_first_ar
AFTER INSERT ON stud_first
FOR EACH ROW
BEGIN
INSERT INTO stud_second
(`name`, `stud-id`, `age`,`class`,`number_of-course_taken`)
VALUES
(NEW.`name`,NEW.`stud-id`,NEW.`age`,NEW.`class`,NEW.`number_of-course_taken`);
INSERT INTO stud_audit (`name`, `time copied`)
VALUES (NEW.`name`,UTC_TIMESTAMP());
END$$
如果您不关心时区问题,您可以使用NOW()
代替。UTC_TIMESTAMP()
包含破折号和空格的列名的选择是非标准的......这是允许的,但是当您避免这样做时通常会更容易。
我实际上只有一个审计表,而不是两个单独的审计表。它可以是带有附加列的表的副本,用于“操作”(识别更改是由于插入、更新还是删除)、“参与者”(识别导致操作的进程或用户,以及 UTC 时间戳。
您可能还需要考虑 UPDATE 和 DELETE 操作的“审核”触发器,其中您有OLD.
可用的特殊“”记录。
同样,这不是一个完整的答案,但这可能足以让您朝着正确的方向开始。