我正在利用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$$