2013-06-17 4 views
2


есть две таблицы
таблица А
как написать триггер MySQL

, если пользователь использовать этот запрос «вставить в значений (ABC, 1,50);»

то триггер должен проверить student_name в «Таблице B», если student_name уже есть в «таблице B», то поле обновление «all_marks» в таблице B, например., «All_marks» должно быть 60

если student_name " а»не существует в„таблице B“, то же 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 ; 

пожалуйста, помогите мне, как написать триггер.

ответ

1

Вы можете просто это с помощью On Duplicate Key Update. Добавьте уникальный ключ по имени/идентификатору ученика, затем используйте следующий код в вашем триггере.

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 $$ 
1

попробовать, как это ...

if (Select Count(Name) from B where B.Name=new.name)<1 
insert into summary_score (name,number,all_marks) 
values(new.name,new.marks,new.score); 
else 
update B set all_marks=old.all_marks+new.student_marks where B.Name=new.Name; 
+0

@ Амит, большое спасибо брату за его работу. :) – usayee

+0

см. Выше ссылку в комментарии –