как создать событие, которое узнает, если дата больше месяца и возвращает значение - PullRequest
0 голосов
/ 27 марта 2012

Мне нужно событие, которое вычитает текущую дату из определенной введенной даты.

Однако я работаю с критериями 1 месяц, если результат вычитания превышает 1 месяц, обновите таблицу со значением «1».Таким образом, это будет Current_date- receipt_date, и если это больше 1 месяца, тогда флаг обновления будет «1», иначе «0».

Я хочу, чтобы он запускался каждую минуту.

Вотмой код до сих пор:

CREATE EVENT myevent3
ON SCHEDULE EVERY '1' MINUTE
DO
UPDATE lms.receipt
SET delinquent = (
    CASE WHEN DATE_ADD( receipt_date, INTERVAL 1 MONTH ) < NOW()
    THEN 1
    ELSE 0
    END
);

Ответы [ 2 ]

1 голос
/ 27 марта 2012

Чтобы запустить ваши события, вам нужно включить планировщик событий, используя set global event_scheduler=on.Это включит планировщик событий до следующего перезапуска сервера.

Если вы хотите, чтобы он был постоянным после перезапуска сервера, вам нужно будет добавить эту строку в my.cnf в разделе [mysqld];

event_scheduler=ON

(Справочная документация здесь )

0 голосов
/ 27 марта 2012

Когда вы пишете результат, вы не можете ожидать, что сможете вернуть результат одновременно.
Вы можете использовать cronjob, состоящий из двух запросов, которые запускаются каждую минуту, чтобы заменить событие

  1. сначала выберите соответствующий идентификатор (например, выведите файл).
  2. , а затем отметьте запись как 0 (или 1, в зависимости от ваших расчетов)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...