-4. 创建触发器 trigger4,为成绩表创建一个触发器,当向表中添加成绩记录时,如果成绩大于 60分,该学生就能得到相应的学分,否则,该学生不能得到相应学
时间: 2024-09-23 14:14:24 浏览: 31
SQL基础与实践: 使用 CHECK 约束和 TRIGGER 构建数据库触发器及平均成绩维护
在创建这样的触发器时,我们需要检查新的成绩是否大于60分,如果是,则在另一个表(比如credit_grants)中为该学生增加相应的学分。下面是针对MySQL的一个例子:
```sql
CREATE TRIGGER trigger4
AFTER INSERT ON scores
FOR EACH ROW
BEGIN
DECLARE score INT DEFAULT NEW.score;
DECLARE credit INT;
IF score > 60 THEN
SELECT credit_points INTO credit FROM credit_system WHERE course_id = NEW.course_id;
INSERT INTO credit_grants(student_id, earned_credit)
VALUES (NEW.student_id, credit);
ELSE
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Score does not qualify for credits';
END IF;
END;
```
在这个触发器里,当新的成绩插入到`scores`表时,会首先判断分数是否大于60,大于则从`credit_system`表获取对应的学分并插入到`credit_grants`表;否则,触发一个错误信息。
阅读全文