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;

创建触发器,当输入某个同学的高考成绩时,如果软件工程的学生,高考成绩自动加5部门编号:

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;
  1. 执行存储过程的SQL语句:
CALL add_student('张三', '男', '软件工程', 600);

执行以上存储过程的SQL语句后,会将一个名为张三、性别为男、所在部门为软件工程、高考成绩为605的学生插入到学生表中。触发器 score_increase 会自动将该学生的高考成绩加5,最终插入的结果为:

| id | name | gender | department | score | |----|------|--------|----------------|-------| | 1 | 张三 | 男 | 软件工程 | 605


原文地址: https://www.cveoy.top/t/topic/eH8b 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录