PhpmyAdmin - 如何创建删除过期玩家的事件计划

时间:2018-02-14 05:13:37

标签: mysql phpmyadmin

enter image description here

我想创建一个每小时运行一次的活动时间表,并检查所有过期玩家的游戏。过期的播放器是一个播放器,其相应的时间戳比服务器当前时间早24小时 如果时间戳超过我想要的24小时,则从Avtv_Plrs字段开始,并且对相应的Plr_#字段进行BLANK,并对TS_#字段进行BLANK。

结果(如果超过24小时)看起来像这样。

enter image description here

我之前从未使用过活动时间表,我们将不胜感激。 我也不想使用Conjob,谢谢你。

1 个答案:

答案 0 :(得分:0)

花了我一些时间,但我明白了。 加入游戏后,时间戳为当前时间+ 86400秒。给我一个当前时间+ 24小时的时间戳。如果时间戳小于UNIX_TIMESTAMP() 然后更新数据。 我必须为每个玩家制作一个事件,所以第一个看起来像这样:

    CREATE DEFINER=`root`@`localhost` 
    EVENT `Game_Update_001` 
    ON SCHEDULE 
    EVERY 1 HOUR 
    STARTS '2018-02-28 01:20:00' 
    ON COMPLETION PRESERVE ENABLE 
    DO 
    UPDATE `games` 
    SET Plr_1 = '', 
    Ts_1 = '', 
    Activ_Plrs = Activ_Plrs - 1 
    WHERE Ts_1 < UNIX_TIMESTAMP() 
    AND Ts_1<>''

第二个看起来像这样:

    CREATE DEFINER=`root`@`localhost` 
    EVENT `Game_Update_002` 
    ON SCHEDULE 
    EVERY 1 HOUR 
    STARTS '2018-02-28 01:20:00' 
    ON COMPLETION PRESERVE ENABLE 
    DO 
    UPDATE `games` 
    SET Plr_2 = '', 
    Ts_2 = '', 
    Activ_Plrs = Activ_Plrs - 1 
    WHERE Ts_2 < UNIX_TIMESTAMP() 
    AND Ts_2<>''

等等。由于某种原因,每个事件必须一次通过SQL输入。