我正在尝试在 MySQL 上运行此代码:
SET GLOBAL event_scheduler = ON;
CREATE EVENT timer
ON SCHEDULE EVERY 1 MINUTE
DO // this is the line of error
IF CURRENT_TIMESTAMP > timer THEN UPDATE users SET online = '0' WHERE CURRENT_TIMESTAMP > timer;
END IF;
但它返回:#1064 - 第 4 行“”附近的语法错误。 错误在哪里?
最佳答案
delimiter |
CREATE EVENT e_daily
ON SCHEDULE
EVERY 1 DAY
COMMENT 'Saves total number of sessions then clears the table each day'
DO
BEGIN
INSERT INTO site_activity.totals (time, total)
SELECT CURRENT_TIMESTAMP, COUNT(*)
FROM site_activity.sessions;
DELETE FROM site_activity.sessions;
END |
delimiter ;
你的 SQL 如何与这个想法一起工作的想法是:
SET GLOBAL event_scheduler = ON;
-- change the delimiter so you can embed ; in your event_body
delimiter |
CREATE EVENT timer
ON SCHEDULE
EVERY 1 MINUTE
DO
BEGIN
IF CURRENT_TIMESTAMP > timer
THEN UPDATE users SET online = '0' WHERE CURRENT_TIMESTAMP > timer;
END IF
END |
-- reset the delimiter
delimiter ;
关于mysql - SQL 事件的语法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58942760/