小编典典

mysql触发器怎么写

sql

有两个表的
表A

如果用户使用此查询“插入A值(abc,1,50);”

然后触发器应检查“表B”中的student_name,如果“表B”中已存在student_name,则更新表B中的“ all_marks”字段,例如,“
all_marks”应为60

如果“表B”中没有“ student_name”“ abc”,则应将相同的“ student_name”,“ student_class”,“
student_marks”插入表B

delimiter $$
create trigger insert_into_summary 
    after insert on A 
    for each row 
begin
     if
//** here i want to write the if condition **  
     insert into B (name,class,overall_marks)
     values(new.name,new.class,new.marks,);
     else 
     update B set all_marks=old.all_marks+new.student_marks;
end $$
delimiter ;

请帮我怎么写触发器。


阅读 200

收藏
2021-04-07

共1个答案

小编典典

您可以使用“重复密钥更新”简单地完成此操作。在学生姓名/ ID上添加唯一键,然后在触发器中使用以下代码

begin
   insert into summary_score (name,number,all_marks)
   values(new.name,new.marks,new.score)
   on duplicate key update all_marks=old.all_marks+new.student_marks
  where B.Name=new.Name;
end $$
2021-04-07