Я хочу обновить два столбца после обновления текущей строки триггером. Конечное время и время запуска - это тип даты. длительность целая, и она будет представлять собой несколько секунд. Sequel Pro сообщит мне «[ОШИБКА в запросе 1] У вас есть ошибка в синтаксисе SQL, проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с '' по строке 5 Выполнение остановлено!"My sql trigger, синтаксическая ошибка
CREATE TRIGGER `end_time_update` AFTER UPDATE ON `mytable`
FOR EACH ROW
BEGIN
UPDATE mytable
set endtime = now(), duration = TIMESTAMPDIFF(SECOND, starttime, endtime)
where id = new.id;
END;
После создания триггера любое обновление не выполнено: Невозможно обновить таблицу «mytable» в хранимой функции/триггете, поскольку она уже используется оператором, который вызывается этой хранимой функцией/триггером. – michael
Вы не можете поместить обновление в ту же таблицу в триггере. Это создало бы бесконечный цикл. Но вы можете использовать 'NEW' для ссылки на текущую запись, чтобы изменить ее. Я обновил ответ –
juergen, я использовал ваш ответ на обновление, но теперь продолжу про сказать: обновление новой строки не разрешено после триггера. – michael