我想知道MySQL上的同一事件是否可能重叠执行:
例如: 我计划每2秒执行一次此事件:
BEGIN
DELETE FROM RouteDatabase3.route_fast WHERE TIMESTAMPDIFF(minute, updated_at, now()) > 5;
END
如果此事件需要10秒钟会发生什么? MySQL服务器将执行与最后一个重叠的相同事件吗?
可以锁定事件执行,因此MySQL将只执行一次吗?
答案 0 :(得分:1)
我能够使用MySQL的GET_LOCK和RELEASE_LOCK函数找到解决方案,
BEGIN
IF GET_LOCK('lock', 5) THEN
DELETE FROM RouteDatabase3.route_fast WHERE TIMESTAMPDIFF(minute, updated_at, now()) > 5;
SELECT RELEASE_LOCK('lock');
END IF;
END