成绩信息表 有:学号,课程号,成绩; 为成绩表创建一个基于UPDATE操作和DELETE操作的复合型触发器, --当修改了该表中的成绩信息或者删除了成绩记录时,触发器激活生效,显示相关的操作信息。
时间: 2023-12-03 08:46:15 浏览: 98
基于UPDATE操作和DELETE操作的复合型触发器可以如下创建:
```mysql
CREATE TRIGGER trigger_name
AFTER UPDATE OR DELETE ON score_info
FOR EACH ROW
BEGIN
IF (OLD.score <> NEW.score OR OLD.course_id <> NEW.course_id) AND OLD.student_id = NEW.student_id THEN
INSERT INTO log_table (action, student_id, course_id, previous_score, new_score, action_time)
VALUES ('update', OLD.student_id, OLD.course_id, OLD.score, NEW.score, NOW());
ELSEIF OLD.score IS NOT NULL AND OLD.course_id IS NOT NULL AND OLD.student_id IS NOT NULL THEN
INSERT INTO log_table (action, student_id, course_id, previous_score, action_time)
VALUES ('delete', OLD.student_id, OLD.course_id, OLD.score, NOW());
END IF;
END;
```
该触发器会在成绩信息表(score_info)中的成绩信息被修改或删除时激活生效。如果修改了成绩信息,则触发器会记录旧成绩和新成绩的值以及修改时间,并将其插入到日志表(log_table)中;如果删除了成绩信息,则触发器会记录删除操作的相关信息,并将其插入到日志表(log_table)中。其中,log_table应该是一个已经存在的用于记录操作信息的表。
阅读全文