2012-07-10 20 views
4

我想在一个预定的事件中做两个语句,但它不工作。它不会做任何事情。你能帮我弄清楚什么是错的?如何在一个计划事件中获取多个MySQL语句?

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

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

+4

我怀疑这是事实 - 更容易一些SQL代码改变。 – 2015-03-05 13:09:25

-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; 
$$; 
+0

这个问题已经显示了语句分隔符的变化... – eggyal 2015-03-05 13:14:44

+0

@eggyal是的,但它的使用不正确。这工作。 – 2015-03-05 13:15:53

+0

如何?看起来对我很好... – eggyal 2015-03-05 13:16:28