我有一个MySQL表与字段名的结果。我想使用一个事件,每XX:50秒执行一次,并通过一个随机数更新字段的值。
需要关于每XX:50秒的语法的帮助。
我试过这个查询。
CREATE EVENT `testEvent`
ON SCHEDULE EVERY 50 SECOND
DO BEGIN
SET @A := (SELECT MAX(`id`) FROM `table`);
UPDATE `table` SET `field` = (RAND()*18) WHERE `id` = @A;
END
使用该查询,第一次更新在00:00:50完成,然后下一次更新将在00:01:40、00:02:30完成,依此类推。
但是我想在00:00:50,00:01:50,00:02:50等等执行它。
2条答案
按热度按时间gc0ot86w1#
MySql events
每50秒执行一次更新:
每2分50秒做一次:
使用
SHOW PROCESSLIST
检查事件调度程序是否已启用。如果它是开的,你应该看到一个进程“Daemon
“由用户“event_scheduler
“。使用SET GLOBAL event_scheduler = ON;
启用调度程序(如果当前未启用)。有关配置事件调度程序here的更多信息ljsrvy3e2#
对OP来说太晚了,但将来可能对别人有用。
如果你想让你的事件在
EVERY XX:50
秒内执行,那么你想让它在EVERY 1 MINUTE
执行,开始时间偏移50秒:如果创建事件时的日期时间为
2023-10-09 10:36:53
,则事件的Starts
值将设置为2023-10-09 10:36:50
,这是过去的值。第一次执行仍将保持正确的时间偏移,并在2023-10-09 10:37:50
。