• Mysql的事件调度器


    Mysql的事件调度器

    事件调度器是Mysql5.1后新增的功能,可以将数据库按自定义的时间周期触发某种操作,可以理解为时间触发器,类似Linux系统下的任务调度器crontab.

    下面是一个最简单的事件调度器:
    CREATE event myevent
    on SCHEDULE AT `CURRENT_TIMESTAMP`()+INTERVAL 1 HOUR
    DO
    UPDATE myschema.mytable set mycol = mycol+1;
    
    其中:
    • 事件名称在create event关键字后指定;
    • 通过on SCHEDULE字句指定事件在何时执行,及执行频次;
    • 通过Do句子指定要执行的具体操作或者事件.
    (1)创建测试表test:
     create table test(id1 varchar(10),create_time datetime);
    
    (2)创建事件调度器test_event_1,每隔5秒向test中插入一条数据
    create EVENT test_event_1
    on SCHEDULE
    EVERY 5 SECOND
    DO
    INSERT INTO test4.test(id1,create_time)
    VALUES('test',now());
    
    
    (3)查看调度状态:
    show events G
    

    image.png

    (4)现在查看test表,发现并没有数据:

    image.png

    (5)现在查看下调度器状态,发现默认是关闭的:
    show variables like '%scheduler%';
    

    image.png

    (6)开启调度器:
     set global event_scheduler = 1;
    
    (7)隔几秒查看下test表,已经出现了数据:

    image.png

    (8)为了防止表变得很大,创建一个新的调度器,每隔一分钟清空一次test:
    CREATE EVENT truc_test
    on SCHEDULE EVERY 1 MINUTE
    DO TRUNCATE TABLE test;
    
    (9)如果事件调度器不再使用,可以禁用(disable)或者删除(drop)掉:
    --禁用event
    alter EVENT test_event_1 DISABLE;
    
    --删除event
    DROP test_event_1 ;
    
  • 相关阅读:
    SW 查看 外部引用
    零散/未完成 SW 视图 坐标
    美团 大众 摩拜 猫眼 统一 账号
    lua file system lfs 软链接 硬链接
    SketchUp VS对比 SolidWorks
    安卓 自动化
    Windows 获取文件的实际路径、名字(大小写敏感)
    bat启动java程序
    java判断某个字符串是否是数字
    commonslogging和log4j配合使用
  • 原文地址:https://www.cnblogs.com/charlypage/p/10321571.html
Copyright © 2020-2023  润新知