После создания любого из триггеров ниже я получаю сообщение об ошибке (подробно после кода), когда пытаюсь сделать обновление.Независимо от того, каким путем я иду, я не могу обновить таблицу.Нужно ли создавать новую таблицу и помещать в нее один столбец для обновления, или есть способ обойти это? На этой странице говорится: «Внутри хранимой функции или триггера запрещено изменять таблицу, которая уже используется (для чтения или записи) оператором, который вызвал функцию или триггер».Но тогда какой смысл в новых и старых ключевых словах?Я просто неправильно их использую?
таблица: галерея
столбцы: вес, модификатор, рейтинг
триггер: updateRating
CREATE TRIGGER updateRating
BEFORE UPDATE ON gallery
FOR EACH ROW
UPDATE gallery SET rating= sum(NEW.weight * NEW.modifier)
или
CREATE TRIGGER updateRating
AFTER UPDATE ON gallery
FOR EACH ROW
UPDATE gallery SET rating= sum(weight * modifier)
SQL-запрос: Изменить
ОБНОВИТЬ `acs`.gallery` SET` weight` = '6' WHERE `gallery``id` = 1 LIMIT 1
MySQL сказал: Документация
# 1442 - Невозможно обновить таблицу 'gallery' в сохраненной функции / триггере, поскольку она уже используется оператором, который вызвал эту хранимую функцию / триггер.