如何使事件调度返回每天,但不是星期三?



我想创建两个具有需求的事件:

  • 每天早上6点运行的事件
  • 每周三早上6点运行的事件
CREATE EVENT IF NOT EXISTS dayrest
ON SCHEDULE EVERY 1 DAY 
STARTS '2023-04-07 06:00:00'
DO
IF DAYOFWEEK(curdate()) = 4 THEN 
UPDATE `Todo` SET done=0;
END IF
IF DAYOFWEEK(curdate()) NOT LIKE 4 THEN
UPDATE `Todo` INNER JOIN `Raid`
ON Todo.`raidName` = `Raid`.name
SET done=0 
WHERE `Raid`.`resetType`="day"
UPDATE `Todo` SET done=0;
END IF
END

误差

errorMessage: "END"在此位置无效,期望EOF, ALTER, ANALYZE, BEGIN, BINLOG, CACHE,…

我不知道错误是什么,为什么…

------------ edit ----------

CREATE EVENT IF NOT EXISTS dayrest
ON SCHEDULE EVERY 1 DAY 
STARTS '2023-04-07 06:00:00'
DO
IF DAYOFWEEK(curdate()) = 4 THEN 
-- work all todo reset
UPDATE `Todo` SET done=0;
ELSE 
-- work only day type rest
UPDATE `Todo` INNER JOIN `Raid`
ON Todo.`raidName` = `Raid`.name
SET done=0 
WHERE `Raid`.`resetType`="day"
END IF

语法错误

语句不完整,等待;

"ELSE"在此位置无效,期望EOF, ALTER, ANALYZE, BEGIN, BINLOG, CACHE,…

delimiter |
CREATE EVENT IF NOT EXISTS dayrest
ON SCHEDULE EVERY 1 DAY 
STARTS '2023-04-07 06:00:00'
DO  
IF DAYOFWEEK(curdate()) = 4 
THEN UPDATE `Todo` SET done=0;
ELSE-- work only day type rest
UPDATE `Todo` INNER JOIN `Raid`
ON Todo.`raidName` = `Raid`.name
SET done=0 
WHERE `Raid`.`resetType`="day";
END IF
|
delimiter ;

it work for me没有语法错误

最新更新