Я пытаюсь создать событие в своей таблице, чтобы запускать каждые несколько минут, чтобы увидеть, является ли теперь next_run(), и если да добавить «frequency» в «next_run», но я получаю исключение синтаксиса каждый раз, когда я это делаю.Интервал MYSQL DATE_ADD как переменная ИЛИ из другого столбца
ниже структура таблицы ...
LAST_RUN |FREQUENCY| NEXT_RUN
----------------------------------------------------
2016-09-15 06:02:06 | 1 DAY | 2016-09-15 06:02:06
" и код, я использую это ...
UPDATE TASKS_MASTER_COPY
@num:=CAST(FREQUENCY) AS UNSIGNED,
@p :=SUBSTR(FREQUENCY, CHAR_LENGTH(@num)+2)
LAST_RUN=NEXT_RUN,
NEXT_RUN=NEXT_RUN + CASE
WHEN @p='YEAR' THEN DATE_ADD(NEXT_RUN, INTERVAL @num YEAR)
WHEN @p='MONTH' THEN DATE_ADD(NEXT_RUN, INTERVAL @num MONTH)
WHEN @p='DAY' THEN DATE_ADD(NEXT_RUN, INTERVAL @num DAY)
WHEN @p='WEEK' THEN DATE_ADD(NEXT_RUN, INTERVAL @num WEEK)
END
WHERE TASK_MASTER_ID=100;
Может кто-то пожалуйста, помогите мне с этим? Спасибо
Каков точный текст ошибки/исключения, что вы получите? – Striezel
/* Ошибка SQL (1064): У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с '@num: = CAST (FREQUENCY) AS UNSIGNED, @p: = SUBSTR (FREQUENCY, CHAR_LENGTH (@num) +2)' в строке 2 */ /* Затронутые строки: 0 Найдено строк: 0 Предупреждения: 0 Длительность для 0 из 1 запросов: 0,000 сек. * / – Ram