Я пытаюсь создать триггер, который обновит столбец в таблице подкастов до среднего значения, полученного из spro c, вызванного во время триггера. Я работал над этим триггером, но, похоже, продолжаю нажимать на ту же ошибку, где мой синтаксис неправильный, я думал, что нашел решение путем изменения разделителя, однако эта проблема возникает даже после этого.
Триггер, который я пытаюсь создать, выглядит следующим образом:
DELIMITER //
CREATE TRIGGER test
AFTER INSERT ON podcastranking
FOR EACH ROW
BEGIN
DECLARE temp_pod_id int;
DECLARE updated_rating int;
set temp_pod_id = SELECT podcast_id FROM inserted;
set updated_rating = CALL get_podcast_rating_avg(temp_pod_id);
UPDATE podcasts
SET podcasts.ranking = updated_rating
WHERE podcasts.id = temp_pod_id;
END; //
DELIMITER ;
Когда я пытаюсь запустить это, я получаю сообщение об ошибке:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT podcast_id FROM inserted;
SET updated_rating = CALL get_podcast_' at line 10
Извинения если я совершаю ошибку, не зная об этом, я довольно плохо знаком с MySQL, и попадание в нее становится для меня чем-то вроде кривой обучения.
Спасибо! :)
из ответов П.Салмона, которые я переписал как
DELIMITER //
CREATE TRIGGER test
AFTER INSERT ON podcastranking
FOR EACH ROW
BEGIN
UPDATE podcasts
SET podcasts.ranking = CALL get_podcast_rating_avg(SELECT podcast_id FROM new.values);
WHERE podcasts.id = SELECT podcast_id FROM new.values ;
END; //
DELIMITER ;
Однако у меня все еще есть проблема с сообщением о том, что мой синтаксис неправильный.