MySQL触发器:学生性别校验及软件工程专业成绩加分
1. 创建触发器
1.1 性别校验触发器
CREATE TRIGGER gender_check
BEFORE INSERT ON student
FOR EACH ROW
BEGIN
IF NEW.gender NOT IN ('男', '女') THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '性别只能为男或女';
END IF;
END;
该触发器会在插入学生数据之前校验 gender 字段的值,如果性别不为 '男' 或 '女',则会抛出错误信息。
1.2 软件工程专业成绩加分触发器
CREATE TRIGGER score_increase
BEFORE INSERT ON student
FOR EACH ROW
BEGIN
IF NEW.department = '软件工程' THEN
SET NEW.score = NEW.score + 5;
END IF;
END;
该触发器会在插入学生数据之前检查 department 字段的值,如果该学生所在的部门为 '软件工程',则会将 score 字段的值自动加 5。
2. 执行存储过程
CALL add_student('张三', '男', '软件工程', 600);
执行以上存储过程后,将会将一个名为张三、性别为男、所在部门为软件工程、高考成绩为 605 的学生插入到学生表中。触发器 score_increase 会自动将该学生的高考成绩加 5,最终插入的结果为:
| id | name | gender | department | score | |----|------|--------|----------------|-------| | 1 | 张三 | 男 | 软件工程 | 605 |
原文地址: https://www.cveoy.top/t/topic/nXMu 著作权归作者所有。请勿转载和采集!