mysql创建update触发器,修改学生班级号,班级人数自动增减
时间: 2023-06-26 17:08:54 浏览: 275
可以使用以下代码创建一个触发器,在学生表中更新班级号时,自动更新班级表中的人数:
```
CREATE TRIGGER update_class_num
AFTER UPDATE ON student
FOR EACH ROW
BEGIN
DECLARE old_class_id INT;
DECLARE new_class_id INT;
SET old_class_id = OLD.class_id;
SET new_class_id = NEW.class_id;
-- 更新旧班级的人数
UPDATE class SET num = num - 1 WHERE id = old_class_id;
-- 更新新班级的人数
UPDATE class SET num = num + 1 WHERE id = new_class_id;
END;
```
这个触发器会在每次学生表中的记录被更新时触发。在触发器中,我们首先声明两个变量 `old_class_id` 和 `new_class_id`,分别存储更新前后的班级号。
接着,我们使用两条 `UPDATE` 语句来更新旧班级和新班级的人数。在更新旧班级的人数时,我们使用 `OLD.class_id` 来获取更新前的班级号;在更新新班级的人数时,我们使用 `NEW.class_id` 来获取更新后的班级号。
需要注意的是,这个触发器假设班级表中有一个 `num` 字段来存储班级的人数。如果你的班级表结构不同,你需要修改触发器中的 `UPDATE` 语句以适应你的表结构。
阅读全文