我正在利用MYSQL中的EVENT在数据库中成批移动记录:

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 ;

所以我的问题是,我想在EVENT查询中添加一些类似的内容

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

这可行吗?如果不是我想要的方式,这里是否有替代方法?

分析解答

最简单的方法 是添加ENDS,结束日期

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

但您也可以添加

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