Я получаю синтаксическую ошибку с моим CREATE TRIGGER MySQL, несмотря на следующий аналогичный синтаксис в ответах на эти темы:
211853
5372872
Но я получаю:
1064 - у вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MariaDB, чтобы найти правильный синтаксис для использования рядом с '' в строке 11
Я использую XAMPP, и в настоящее время я пытаюсь запустить этот код в PHPMyAdmin, чтобы убедиться, что он работает перед добавлением на запрос PDO в PHP ...
CREATE TRIGGER before_mediaitems_update
BEFORE UPDATE
ON mediaitems
FOR EACH ROW
BEGIN
IF (NEW.ConsumptionStatus != OLD.ConsumptionStatus)
THEN
update UpdateLog_ConsumptionStatus
set MediaItemID = OLD.MediaItemID,
UpdateValue = NEW.ConsumptionStatus,
DateUpdated = NOW();
END IF;
END
До создания этого триггера я уже запустил и успешно создал зависимые таблицы, так что часть сценария работает. В онлайновых MySQL средствах проверки синтаксиса им не нравится этот синтаксис, но они выдают такие же полезные сообщения об ошибках, как и # 1064.
Каждый раз, когда запись в таблице mediaitems изменяет свой ConsumeStatus, я хочу записать в таблица UpdateLog_ConsulationStatus: PK элемента мультимедиа в виде FK в UpdateLog_ConsumpStatus> MediaItemID, затем новое значение ConsulationStatus, наконец, дата и время, когда произошло обновление.