MySQL 事件未按计划执行任务?

标签 mysql stored-procedures

我已以 root 用户身份创建事件日志记录,并且 GLOBAL event_schedulerON 我的事件过程查询是:

DELIMITER $$

CREATE 
    EVENT `near_end_warranty` 
    ON SCHEDULE EVERY 1 HOUR
    DO BEGIN

        DECLARE numrow int;
        SELECT COUNT(id) FROM equipments WHERE TIMESTAMPDIFF(WEEK,NOW(),warranty_end_date)<5 AND TIMESTAMPDIFF(WEEK,NOW(),warranty_end_date)>0 INTO numrow;

        IF numrow>0 THEN
        INSERT INTO notifications (eq_id,start_date,end_date,name,type,message,created_by,modified_by,created_on,modified_on)
        SELECT eq_id,warranty_start_date,warranty_end_date,'warranty','ending soon','warranty ends soon for','System','System',NOW(),NOW()
        FROM equipments WHERE TIMESTAMPDIFF(WEEK,NOW(),warranty_end_date)<5 AND TIMESTAMPDIFF(WEEK,NOW(),warranty_end_date)>0;
        END IF;

    END $$

DELIMITER ;

我的事件状态是:

Db:db_medisup
Name:near_end_warranty
Definer:root@localhost
Time zone:SYSTEM
Type:RECURRING
Execute at:NULL
Interval value:1
Interval field:HOUR
Starts:2015-05-08 07:11:09
Ends:NULL
Status:ENABLED
Originator:1
character_set_client:utf8
collation_connection:utf8_general_ci
Database Collation:latin1_swedish_ci

我正在尝试根据条件从设备表中获取多行,并每小时插入到通知表中。我于 07:11 创建了此事件,已经是 9:52,尚未将任何行插入到通知表中.warranty_end date:2015-05-20 在两行设备表上,今天的日期是 2015-05-08,因此必须将两行添加到通知表中。这里可能有什么问题?

最佳答案

我实际上找到了确切的问题,表的字段名称和查询时有一点错误,我现在已经解决了它,一切都运行得很完美。

关于MySQL 事件未按计划执行任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30116478/

相关文章:

php - Swift:如何使用 NSURLSession 查询外部数据库?

php - MySQL 终端结果 != PHP->MySQL 结果

java - "prepared-statement"是存储过程吗?

sql-server - 是否可以在现有存储过程中向查询添加行计数限制?

mysql存储过程带参数问题

php - MySQL:忽略行之间差异大于 x 的结果

mysql - 从孙表中检索记录

mysql - 获取与左连接表匹配的行数?

c# - 返回 IQueryable 表达式而不执行数据库查询

mysql - 如何使用 Mysql 存储过程将导出的文件放置在安全文件传输协议(protocol) (SFTP) 位置