【发布时间】:2019-09-18 00:47:01
【问题描述】:
我试图在一段时间后使用事件删除行。这样做时,我还有其他事情要处理。我只想删除行,如果它们想在一定时间后被删除。真的不知道如何表达,但是当你看代码时你就会明白:
CREATE EVENT IF NOT EXISTS `remove_links`
ON SCHEDULE EVERY 1 SECOND
ON COMPLETION PRESERVE
ENABLE
DO
DELETE FROM links WHERE time < (NOW() - INTERVAL 1 DAY) AND EXPIRE = 'A Day';
DELETE FROM links WHERE time < (NOW() - INTERVAL 1 WEEK) AND EXPIRE = 'A Week';
DELETE FROM links WHERE time < (NOW() - INTERVAL 1 MONTH) AND EXPIRE = 'A Month';
如果我只有一个 DELETE 语句,则此方法有效,但是当我一次添加多个时,该事件只接受第一个,甚至不会注意到其余的(我在创建它后查看了该事件并且有只有一个 DELETE 语句[总是第一个])。
很抱歉,如果以前有人回答过这个问题,我不知道要搜索什么。
【问题讨论】:
-
你不能在 1 个查询中组合它们吗?
-
怎么样?如果你的意思是删除';',我不能。
-
看我的回答。
标签: mysql mysql-8.0 mysql-event