Я пытаюсь создать триггер, который будет обновлять столбец при каждой вставке в другую таблицу. В моем случае, всякий раз, когда я вставляю новый аналог таблицы student_likes_post
, я хочу, чтобы таблица forum_post
соответственно обновляла свой столбец likes
. Это мой запрос:
use mydb;
DELIMITER //
CREATE TRIGGER update_likes
after INSERT
ON student_likes_post FOR EACH ROW
BEGIN
UPDATE forum_post
SET forum_post.likes = (
select count(*)
FROM student_likes_post
WHERE student_likes_post.post_id = forum_post.id
);
END;
DELIMITER;
Однако, когда я запускаю его, он просто продолжает работать вечно, ничего не происходит. Подзапрос работает, хотя и индивидуально. Я пробовал другие триггеры на той же таблице student_likes_post
, которые имеют ту же проблему. Есть идеи, как мне заставить это работать? Как вы думаете, это проблема с самой таблицей или с кодом?