学生(学号,姓名,年龄,性别,系名) 课程(课号,课名,学分,学时) 选课(学号,课号,成绩) 建立学生表的insert触发器,若向学生表中插入一条记录,则自动向选课表中插入一行,令该生选一门选修人数最多的课。
时间: 2023-12-15 22:05:14 浏览: 86
学生选课系统 学生 教师课程类 实现选课
5星 · 资源好评率100%
触发器是一种特殊的存储过程,它会在特定的数据库操作(如插入、更新或删除)发生时自动执行。因此,我们可以创建一个触发器来实现向选课表中插入一行的功能。
具体步骤如下:
1. 创建一个名为trg_insert_student的触发器,它将在向学生表中插入一行时自动触发。
```sql
CREATE TRIGGER trg_insert_student
AFTER INSERT ON 学生
FOR EACH ROW
```
2. 在触发器中查询选修人数最多的课程,并将其插入到选课表中。
```sql
INSERT INTO 选课 (学号, 课号)
SELECT NEW.学号, 课程.课号
FROM 课程
WHERE 课程.课号 = (
SELECT 选课.课号
FROM 选课
GROUP BY 选课.课号
ORDER BY COUNT(*) DESC
LIMIT 1
);
```
完整的触发器代码如下:
```sql
CREATE TRIGGER trg_insert_student
AFTER INSERT ON 学生
FOR EACH ROW
BEGIN
INSERT INTO 选课 (学号, 课号)
SELECT NEW.学号, 课程.课号
FROM 课程
WHERE 课程.课号 = (
SELECT 选课.课号
FROM 选课
GROUP BY 选课.课号
ORDER BY COUNT(*) DESC
LIMIT 1
);
END;
```
阅读全文