SQL触发器 如何写当学生信息表增加或者删除时,班级人数随着变化 60
如:班级信息表(班级编号,班级名称,班级人数)学生信息表(学号,姓名,所属班级)如何让班级表的A班级人数等于学生表的所属A班级的总数,当学生表记录增加或删除,班级表里的班...
如:班级信息表(班级编号,班级名称,班级人数)
学生信息表(学号,姓名,所属班级)
如何让班级表的A班级人数等于学生表的所属A班级的总数,当学生表记录增加或删除,班级表里的班级人数也随着增加或减少。
求一个 SQL触发器的具体写法,麻烦注释说明一下具体的语句的作用!谢谢了!
麻烦高手们亲自写一个,,不要复制其他的给参考,看过一些不是很明白。我想弄个自己的例子,这样能理解透彻些 展开
学生信息表(学号,姓名,所属班级)
如何让班级表的A班级人数等于学生表的所属A班级的总数,当学生表记录增加或删除,班级表里的班级人数也随着增加或减少。
求一个 SQL触发器的具体写法,麻烦注释说明一下具体的语句的作用!谢谢了!
麻烦高手们亲自写一个,,不要复制其他的给参考,看过一些不是很明白。我想弄个自己的例子,这样能理解透彻些 展开
2个回答
展开全部
不知道你是哪种数据库,现以主流数据库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;
/
--创建或替换一个触发器,在表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;
/
七鑫易维信息技术
2024-09-02 广告
2024-09-02 广告
Play Video 七鑫易维是致力于机器视觉和人工智能领域的高新科技企业,迄今已专注眼球追踪技术的研发、创新与应用超过14年,拥有完全自主知识产权,全球专利总量655余项。 作为眼球追踪技术领域的全球知名品牌,七鑫易维的产品体系覆盖眼动分...
点击进入详情页
本回答由七鑫易维信息技术提供
2015-08-02
展开全部
搞触发器这么麻烦,你还不如给学生添加班级列,然后做一个视图在需要班级人数的时候挂一个sum就好了
追问
目的是学习触发器啊
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询