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

问题描述 投票:-1回答:1

enter image description here

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

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

enter image description here

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

mysql phpmyadmin
1个回答
0
投票

花了我一些时间,但我想通了。加入游戏后,时间戳为当前时间+ 86400秒。给我一个当前时间+ 24小时的时间戳。如果timestamp小于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输入。

© www.soinside.com 2019 - 2024. All rights reserved.