2015-04-17 56 views
0

任何人都可以告诉我为什么这个事件不会执行?MySQL事件将不会执行

CREATE EVENT add_recurring 
ON SCHEDULE EVERY 1 MINUTE 
    STARTS '2015-04-17 06:01:00' 
DO INSERT INTO payment (amount, note, custID, type) 
    SELECT amount, note, custID, 'C' FROM recurring WHERE day = DATE_FORMAT(CURRENT_DATE(), '%e') 

这里是重复表的样子:

enter image description here

这里是没有任何优势的情况下进入到这些值的支付表:

enter image description here

+0

你是否收到任何错误或者你没有得到想要的结果? –

+0

没有错误。该事件是创建并存储的,但它不会每分钟输入任何值到付款表中,它根本没有输入任何内容。 –

+0

您在插入查询后错过了**; **您已经立即编写了select查询 –

回答

0

我假设你已经改变了你的系统时钟?查询是从现在起2个月...

+0

当我读到这个答案并去改变它时,我非常兴奋,但后来我意识到这是一个错字,这是2015-04-17在我的活动中:/ –

+0

@NickSuwyn听起来不像这个答案你的问题,但你接受它作为正确的答案? (绿色的勾号表示你接受了这个答案)。接受答案的问题不太可能得到更多关注。如果你还没有找到你的问题的答案,你应该能够通过再次点击绿色的勾号来接受这个答案。 –

1

试试这些,假设开始日期是未来

  1. 尝试加入BEGIN,END和DELIMITER

    delimiter | 
    
    CREATE EVENT add_recurring 
        ON SCHEDULE 
        EVERY 1 MINUTE 
        STARTS '2015-04-17 06:01:00' 
        DO 
        BEGIN 
         INSERT INTO payment (amount, note, custID, type), SELECT amount, note, custID, 'C' FROM recurring WHERE day = DATE_FORMAT(CURRENT_DATE(), '%e') 
        END | 
    
    delimiter ; 
    
  2. 确保即使程序器被接通。

    SET GLOBAL event_scheduler = ON; SET GLOBAL event_scheduler = 1; 或下的[mysqld] my.cnf中部分event_scheduler=ON

+0

我已经完成SET GLOBAL event_scheduler = ON;它仍然不起作用。 –