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 пересчитывает счетчики пользователей, она уже написана в неё всего лишь нужно передать ид пользователя, как это сделать? Прошу помогите.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости