SQL触发器 如何写当学生信息表增加或者删除时,班级人数随着变化

2024-12-19 01:44:53
推荐回答(2个)
回答1:

不知道你是哪种数据库,现以主流数据库Oracle为例
--创建或替换一个触发器,在表T_STU增加一条记录后触发;
CREATE OR REPLACE TRIGGER "TRI_INS_ST" AFTER
INSERT ON "T_STU" FOR EACH ROW
begin
--插入后将其他表数据增加,新增的数据行用:new取值;
UPDATE T_STU_RS SET RS=RS+1 WHERE BJID=:new.BJID;--此处模拟 将学生所在的班级人数加一
end;
/
--创建或替换一个触发器,在表T_STU的任何一行记录删除后触发;
CREATE OR REPLACE TRIGGER "TRIN_DEL_ST" AFTER
DELETE ON "T_STU" FOR EACH ROW
begin
--删除后将其他表数据减少,删除前的数据行用:old取值;
UPDATE T_STU_RS SET RS=RS-1 WHERE BJID=:old.BJID;--此处模拟 将学生所在的班级人数减一
end;
/

回答2:

搞触发器这么麻烦,你还不如给学生添加班级列,然后做一个视图在需要班级人数的时候挂一个sum就好了