fortunato
@fortunato
Автоматический монтаж видео - LIFEFILM.ru

Как составить тригер для обновления нескольких CURRENT_TIMESTAMP?

Есть таблица, там три столбца
cropme.ru/a16cefb8d3df11efbbd64f2f08c2504b
необходимо при смене статуса `status`
проставлять штампы
status -1 , ставим штамп в towork
status -2, ставим штамп finished

составил такой тригер

DELIMITER $$

CREATE
    TRIGGER `towork` BEFORE UPDATE
    ON `modx_lfvideo_items`
    FOR EACH ROW 
    BEGIN
	SET NEW.towork =  CURRENT_TIMESTAMP() WHERE `status` = '1' ;
    END$$

DELIMITER ;


выходит ошибка
Error Code: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `status` = '1' ;
END' at line 6

без условия WHERE работает, но не учитывает статус
  • Вопрос задан
  • 2260 просмотров
Решения вопроса 1
Zhuravljov
@Zhuravljov
php-программист
Должно быть что-то типа:

DELIMITER $$

CREATE TRIGGER `towork` BEFORE UPDATE
ON `modx_lfvideo_items`
FOR EACH ROW 
BEGIN
	IF (NEW.status <> OLD.status) THEN
		CASE NEW.status
			WHEN 1 THEN SET NEW.towork = CURRENT_TIMESTAMP();
			WHEN 2 THEN SET NEW.finished = CURRENT_TIMESTAMP();
		END CASE;
	END IF;
END$$

DELIMITER ;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы