MySQL триггер для обновления значения в другой таблице - PullRequest
2 голосов
/ 31 июля 2010

Что я хочу, чтобы при обновлении / вставке в таблицу x, увеличить значение в таблице y, на 1

Пример ниже, используя оператор выбора, который я не могу использовать, так как я выбираю из таблицы, которую я пытаюсь обновить

DELIMITER $$
create trigger occupancy
after insert on tbl_attendence
for each row
begin
    set @course_id = new.course_id;
    set @attendence_date = new.attendence_date;

    if new.reason = 1 then

        update tbl_course_occupancy
        set occupancy_number= (select occupancy_number 
                                from tbl_course_occupancy 
                               where course_id = @course_id 
                                 and occupancy_year = EXTRACT(year from @attendence_date) ) + 1
        where course_id = @course_id 
          and occupancy_year = Extract(year from @attendence_date);

    end if;

end$$

любая помощь уточняется, спасибо

1 Ответ

4 голосов
/ 31 июля 2010

Использование:

UPDATE tbl_course_occupancy
   SET occupancy_number = occupancy_number + 1
 WHERE course_id = @course_id 
   AND occupancy_year = Extract(year from @attendence_date);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...