使用sql语句创建以下触发器代码(1)学生表中删除一个学生时,同时从选课表中将其所有选课信息删除 (2)创建触发器限定一个学生最多只能选择2门课; 利用触发器限定修改后的分数只能比原来高。
时间: 2024-02-26 08:59:15 浏览: 57
数据库之—用触发器实现每个学生最多只能选择3门课程
5星 · 资源好评率100%
触发器代码如下:
1. 当学生表中删除一个学生时,同时从选课表中将其所有选课信息删除。
```
CREATE TRIGGER delete_student_trigger
AFTER DELETE ON student_table
FOR EACH ROW
BEGIN
DELETE FROM course_table WHERE student_id = OLD.student_id;
END;
```
2. 创建触发器限定一个学生最多只能选择2门课。
```
CREATE TRIGGER limit_course_trigger
BEFORE INSERT ON course_table
FOR EACH ROW
BEGIN
DECLARE course_count INT;
SELECT COUNT(*) INTO course_count FROM course_table WHERE student_id = NEW.student_id;
IF course_count >= 2 THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '每个学生最多只能选择2门课程';
END IF;
END;
```
3. 利用触发器限定修改后的分数只能比原来高。
```
CREATE TRIGGER update_score_trigger
BEFORE UPDATE ON course_table
FOR EACH ROW
BEGIN
IF NEW.score < OLD.score THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '分数只能比原来高';
END IF;
END;
```
阅读全文