为上课信息表创建一个触发器,当增加一个上课记录时,要同时在成绩表中添加该班级所有同学学习该课程的记录,即学号和课程号,成绩暂为空(具体数据等待该课程学习结束后再录入)。
时间: 2024-03-25 15:42:07 浏览: 56
好的,针对你的问题,我可以给出以下的 MySQL 触发器代码:
```mysql
CREATE TRIGGER add_score_record
AFTER INSERT ON class_schedule
FOR EACH ROW
BEGIN
INSERT INTO score (student_id, course_id, score)
SELECT student.student_id, new.course_id, NULL
FROM student
WHERE student.class_id = new.class_id;
END;
```
以上代码中,我们创建了一个名为 `add_score_record` 的触发器,它会在 `class_schedule` 表中插入一条记录后触发。
在触发器中,我们使用了一个 `INSERT INTO` 语句来向 `score` 表中添加新的记录。这些记录包括了所有在该班级中的学生的学号和课程号,成绩暂时为空(NULL)。
我们使用了一个 `SELECT` 子句来查询该班级中的所有学生的学号,然后将这些学生的学号和课程号插入到 `score` 表中。
值得注意的是,在 `SELECT` 子句中,我们使用了 `new.course_id` 来获取当前插入的课程号,使用了 `student.class_id = new.class_id` 来过滤出该班级中的学生。
希望这个触发器代码可以帮到你,如果有任何问题,欢迎继续提问。
阅读全文