它可能在MySQL中同一事件重叠?

时间:2017-09-11 16:37:51

标签: mysql events locking overlap

我想知道MySQL上的同一事件是否可能重叠执行:

例如: 我计划每2秒执行一次此事件:

BEGIN   
 DELETE FROM RouteDatabase3.route_fast WHERE TIMESTAMPDIFF(minute, updated_at, now()) > 5; 
END

如果此事件需要10秒钟会发生什么? MySQL服务器将执行与最后一个重叠的相同事件吗?

可以锁定事件执行,因此MySQL将只执行一次吗?

1 个答案:

答案 0 :(得分:1)

我能够使用MySQL的GET_LOCKRELEASE_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