Ошибка в синтаксисе SQL при создании события для удаления сеанса

Используйте некоторые модули Perl для выполнения расчетов по дате, например, рекомендуемые DateTime или Time :: Piece (ядро из 5.10). Просто увеличьте дату и дату печати, а 0 до даты будет соответствовать текущему.

1
задан Andrew 18 January 2019 в 17:24
поделиться

1 ответ

Ваша команда CREATE EVENT и DELETE используют ; в качестве разделителя. Таким образом, ваша команда CREATE EVENT заканчивается после команды DELETE (до END). Вам нужно установить DELIMITER в начале, чтобы использовать другой по команде CREATE EVENT.

-- set the DELIMITER to "|"
DELIMITER |

CREATE EVENT delete_session
    ON schedule AT current_timestamp + INTERVAL 1 DAY
    ON COMPLETION PRESERVE
DO BEGIN
    DELETE FROM session WHERE `date` < DATE_SUB(NOW(), INTERVAL 7 DAY);
END |

-- set the DELIMITER back to the default.
DELIMITER ;

... и вам нужно изменить еще одну вещь:

  • убрать завершающий S на DAYS.
0
ответ дан Sebastian Brosch 18 January 2019 в 17:24
поделиться
Другие вопросы по тегам:

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