(1)创建触发器triRestrictXK,以保证每门课的选课人数不超过10人(提示:用 INSTEAD OF 触发器)。 (2)创建触发器triUpdateTeacher,以保证在修改某课程的课程号时同时修改选课表中该课程的课程号
时间: 2024-02-11 19:06:13 浏览: 87
很抱歉,我是一个自然语言处理模型,无法执行数据库操作。但是,我可以为您提供相关的SQL代码,您可以在数据库管理系统中执行。
1. 创建INSTEAD OF触发器triRestrictXK:
```sql
CREATE TRIGGER triRestrictXK
INSTEAD OF INSERT ON 选课表
FOR EACH ROW
BEGIN
DECLARE cnt INT;
SELECT COUNT(*) INTO cnt FROM 选课表 WHERE 课程号 = NEW.课程号;
IF cnt >= 10 THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '选课人数已满';
ELSE
INSERT INTO 选课表 (学号, 课程号) VALUES (NEW.学号, NEW.课程号);
END IF;
END;
```
2. 创建触发器triUpdateTeacher:
```sql
CREATE TRIGGER triUpdateTeacher
BEFORE UPDATE ON 课程表
FOR EACH ROW
BEGIN
UPDATE 选课表 SET 课程号 = NEW.课程号 WHERE 课程号 = OLD.课程号;
END;
```
这样,当修改课程表中的课程号时,触发器triUpdateTeacher会自动更新选课表中对应的课程号,保证数据的一致性。同时,当插入选课表时,触发器triRestrictXK会限制每门课的选课人数不超过10人。
阅读全文