MySQL цикл в триггере

205
13 мая 2019, 00:50

MySQL (5.7)

На сайте вопросов и ответов есть таблица вопросов questions, у неё имеются два триггера срабатывающие при удалении записей, триггеры - del_quest_before и del_quest_after .

Первый триггер срабатывает перед удалением и содержит следующий код:

del_quest_before

BEGIN
    SET @qid = OLD.id;
    SET @uid_answ = (SELECT uid FROM answers WHERE qid = @qid);
END

@qid - ид удаляемого вопроса, @uid_answ - ид пользователей, которые оставляли ответы к удаляемому вопросу; дело в том, что при удалении вопроса, каскадно по ключу удалятся и ответы, которые он содержит, и мне нужно пересчитать счетчики количества ответов у пользователей. Поэтому перед удалением я делаю выборку пользователей, которые отвечали на вопрос и помещаю её в переменную @uid_answ.

Второй триггер срабатывает после удаления вопроса, и я хочу чтобы он выполнил цикл по @uid_answ и для каждого пользователя пересчитал счетчики, должно быть что-то вроде:

BEGIN
    ЦИКЛ ПО @uid_answ
        @uid_answ_elem = @uid_answ[0];
        CALL recalc_cnt_users_answ(@uid_answ_elem);
    КОНЕЦ ЦИКЛА
END

Процедура recalc_cnt_users_answ пересчитывает счетчики пользователей, она уже написана в неё всего лишь нужно передать ид пользователя, как это сделать? Прошу помогите.

READ ALSO
Якорный тег не работает в iPhone Safari

Якорный тег не работает в iPhone Safari

Помогите решить проблемуЯкорный тег не работает в iPhone Safari код:

173
Адаптивная верстка с Bootstrap 4

Адаптивная верстка с Bootstrap 4

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

209