4

我正在尝试在一个预定事件中执行两个语句,但它不起作用。它不会做任何事情。你能帮我找出问题所在吗?

delimiter |
CREATE EVENT resetTimeClockTimeToday 
ON SCHEDULE EVERY 1 DAY STARTS '2012-07-10 00:00:00' DO 
BEGIN 
   UPDATE timeclock.employees SET timeToday = 0; 
   UPDATE timeclock.punches SET missedOut = 1 WHERE timeOUT IS NULL; 
END|
delimiter ;
4

2 回答 2

-1

您需要正确使用不同的分隔符,例如:

DROP EVENT IF EXISTS `Daily Event`;
DELIMITER $$
CREATE DEFINER=`root`@`localhost` EVENT `Daily event` ON SCHEDULE EVERY 1 DAY STARTS '2015-03-06 00:30:00' ON COMPLETION PRESERVE ENABLE DO
BEGIN

-- Newly due summary sheets
UPDATE          `summaries`
SET             `status` = 'DUE'
WHERE           `status` = 'OPEN'
AND             NOW() >= LAST_DAY(CONCAT(`year`, '-', `month`, '-01'));

-- Alert user that didn't clock out
INSERT INTO     `alerts` (`from`, `to`, `subject`, `message`)
SELECT          ....;

-- Alert manager that didn't clock out
INSERT INTO     `alerts` (`from`, `to`, `subject`, `message`)
SELECT          ....;

-- Alert for stale tickets
INSERT INTO     `alerts` (`from`, `to`, `subject`, `message`)
SELECT          ....;

END;
$$;
于 2015-03-05T13:12:49.540 回答
-6

我重新启动了 MySQL 服务,它工作了!

于 2012-07-10T14:54:35.417 回答