我正在寻找一种MySql工作,让我解释一下我的问题。
基本上我有一个表(代表我的排队列表),这个表包含一个字段“action”和一个字段“end date”。 “结束日期”表示我必须启动操作的时间。
我需要的是一个工作,或无限循环,谁不断检查“结束日期”字段,当这个字段,这个日期,对应于实际日期,然后执行一个动作(SQL查询)。 p>
希望你们能给我一些提示;)
答案 0 :(得分:1)
我认为MySQL EVENT
可以用于此目的。
示例:
delimiter $$
CREATE EVENT Every_5_minutes_e
ON SCHEDULE
EVERY 5 MINUTE
STARTS CURRENT_TIMESTAMP + INTERVAL 1 DAY --- starting tomorrow
ENDS '2099-12-31 23:59:59' --- ending in 2099
COMMENT 'Check queuing list and perform actions'
DO
BEGIN
DECLARE actionstatus_doingnow VARCHAR(255);
SET actionstatus_doingnow = CONCAT('Doing now ', NOW()) ;
UPDATE QueueingList --- mark actions that will be done
SET ActionStatus = actionstatus_doingnow --- by this event
WHERE EndDatetime <= NOW()
AND ActionStatus = 'To Be Done' ;
... --- code for doing the actions
UPDATE QueueingList --- mark actions as finished
SET ActionStatus = 'Done'
WHERE ActionStatus = actionstatus_doingnow ;
END $$
delimiter ;