+ -
当前位置:首页 → 问答吧 → 求教,oracle创建触发器,更新表A时触发而更新B,使B表的记录加上表C的值

求教,oracle创建触发器,更新表A时触发而更新B,使B表的记录加上表C的值

时间:2011-12-01

来源:互联网

有表course(cno,credit)表示课程号和学分数,
表SC(sno,cno,grade)表示学生号,课程号和成绩,
表credit(sno,sumcredit,notpass)表示学号和总学分以及不及格学科数。

现要求当插入记录到SC表时,触发器同步更新credit里的记录,当插入的分数及格时,sumcredit加上这一科的学分,否则notpass加1;

求各位指导啊,麻烦用ORACLE数据库写.......感激不尽

作者: scutcs09   发布时间: 2011-12-01

create trigger t_insert_sc
after insert
on sc
for each row
new_credit number(8);
begin 
  --判断是否及格
  if new.grade>=60 then
  --取该课程学分
  select credit into new_credit from course where cno=new.cno;
  --更新该学生学分
  update credit set sumcredit=sumcredit+new_credit where sno=new.sno;
  else if
  --更新不及格次数
  update credit set notpass=notpass+1 where sno=new.sno;
  end if;
end;

作者: youqi1984   发布时间: 2011-12-01