Как удалить СОБЫТИЕ, когда curdate () = будущая дата MYSQL - PullRequest
0 голосов
/ 10 января 2020

Я использую СОБЫТИЕ в MYSQL для перемещения записей партиями по моей базе данных:

USE db;
DROP EVENT IF EXISTS eval_1day;
Delimiter $$
CREATE EVENT IF NOT EXISTS eval_1day
ON SCHEDULE EVERY 1 DAY
STARTS current_timestamp()
DO
  BEGIN
    START TRANSACTION;

    INSERT INTO db.t2
      (`upc`,
       `brand`,
       `agency`,
       `policy`)


SELECT 

    db.`upc`,
    db.`brand`,
    db.`agency`,
    db.`policy`
FROM db.t
ORDER BY id desc
LIMIT 600;
DELETE FROM db.t order by id desc limit 600;

COMMIT;
END$$
DELIMITER ;

Итак, мой вопрос, я хочу добавить в этот запрос СОБЫТИЯ что-то вроде

IF CURDATE() = future_date, DROP EVENT IF EXISTS eval_1day;

Это выполнимо, и если не так, как я хочу, есть ли альтернативный метод здесь?

1 Ответ

0 голосов
/ 10 января 2020

Самый простой способ - добавить ENDS и указать дату окончания

STARTS current_timestamp()
ENDS '2020-01-31'
DO

Но вы также можете добавить

IF '2020-01-31' >= curdate() THEN
    DROP EVENT eval_1day;
END IF;
END$$
...