每隔指定时间检测a表c字段时间与现在时间相差是否超过两个小时 如果超过两个小时插入d字段字段值(这个字段值也是要指定的).求大神 贴下代码 谢谢啦~

解决方案 »

  1.   

    去mysql板块问把,没人的话再来这边问
      

  2.   

    可以在计划任务建立Job进行处理的。
      

  3.   

    1. 启动 event_scheduler
    在配置文件mysqld 标签后加上这行: event_scheduler=1
    如果不想重启 mysql, 则再在 mysql 中执行
    set global event_scheduler=1;2. 然后后创建定期执行的 EVENT 即可(下面是每分钟)(逻辑复杂建议写存储过程,在 Event 中直接调用存储过程)
    CREATE EVENT myevent
    ON SCHEDULE EVERY 1 MINUTE
        DO
    UPDATE A SET id = 1 WHERE c >= now() - interval 2 hour ;
      

  4.   

    #增加测试表及测试数据
    drop table if exists a;
    create table if not exists a(
    id int primary key,
    c datetime not null,
    d int not null
    );
    truncate table a;
    insert into a(id,c,d) values(1,now() -interval 3 hour,0);
    insert into a(id,c,d) values(2,now(),0);
    #开启事件
    SET GLOBAL event_scheduler = ON;  
    show variables like '%event_scheduler%'; 
    #创建事件 禁用->删除->创建
    #alter event `eventTest` disable; #如果有先禁用避免没有生效
    drop event if exists `eventTest`;
    CREATE EVENT `eventTest`
    ON SCHEDULE
    EVERY '2' SECOND  #测试成功后可改成 Hour
    DO update a set d=d+1 where c<now() - interval 2 hour; #具体的逻辑你自己根据需要来修改