我想创建两个具有需求的事件:
- 每天早上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没有语法错误