MySQL——事件

本文介绍了MySQL中的事件调度器,它允许定时执行SQL任务。内容包括如何查看事件状态、开启事件调度器、创建事件以及修改事件。示例展示了如何每隔一定时间间隔向数据库插入数据,并提供了多种时间间隔设置的示例。此外,还讲解了如何使用ALTER EVENT语句修改事件的执行周期。
摘要由CSDN通过智能技术生成

1、事件

事件是一组SQL集合,简单说就是mysql中的定时器,时间到了就执行。

2、查看事件是否开启   

事件由一个特殊的线程来管理,启用事件调度器后,拥有SUPER权限的账户执行

SHOW VARIABLES LIKE 'even_scheduler';
SELECT @even_scheduler;
SHOW PROCSSLIST;

3、开启事件

    1、通过设置全局参数修改

SET GLOBAL event_scheduler = ON;

    2、更改配置文件

    在MySQL的配置文件my.ini中找到【mysqld】,然后添加如下代码开启事件

event_scheduler = ON;

4、创建事件

    可以通过CREATE EVEVT语句创建事件

CREATE
    [DEFINER={user | CURRENT_USER}]
    EVENT [IF NOT EXISTS] event_name
    ON SCHEDULE schedule
    [ON COMPLETION [NOT] PRESERVE]
    [ENABLE | DISABLE | DISABLE ON SLAVE]
    [COMMENT 'comment']
    DO event_body;

    比如在数据库中创建一个名为test的事件,用于每隔5秒钟向数据表table_name中插入一条数据

#打开数据库
use databases;
#创建tset事件
CREATE EVENT IF NOT EXISTS test ON SCHEDULE EVERY 5 SECOND
ON COMPLETION PRESERVE
DO INSERT INTO new_table(name,age,sex) VALUES("张帆",13,"男",NOW());

    一些常用的时间间隔设置:

    (1)、每隔5秒钟执行

ON SCHEDULE EVERY 5 SECOND

    (2)、每隔1分钟执行

ON SCHEDULE EVERY 1 MINUTE

    (3)、每天凌晨1点执行

ON SCHEDULE EVERY 1 DAY STARTS DATE_ADD(DATE_ADD(CURDATE(), INTERVAL 1 DAY), INTERVAL 1 HOUR)

    (4)、每个月的第一天凌晨1点执行

ON SCHEDULE EVERY 1 MONTH STARTS DATE_ADD(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY),INTERVAL 1 MONTH),INTERVAL 1 HOUR)

    (5)、每 3 个月,从现在起一周后开始

ON SCHEDULE EVERY 3 MONTH STARTS CURRENT_TIMESTAMP + 1 WEEK

    (6)、每十二个小时,从现在起三十分钟后开始,并于现在起四个星期后结束

ON SCHEDULE EVERY 12 HOUR STARTS CURRENT_TIMESTAMP + INTERVAL 30 MINUTE ENDS CURRENT_TIMESTAMP + INTERVAL 4 WEEK

5、修改事件

    使用ALTER EVENT语句修改其定义和相关属性

ALTER
    [DEFINER={user | CURRENT_USER}]
    EVENT [IF NOT EXISTS] event_name
    ON SCHEDULE schedule
    [ON COMPLETION [NOT] PRESERVE]
    [ENABLE | DISABLE | DISABLE ON SLAVE]
    [COMMENT 'comment']
    DO event_body;

    修改test事件中插入数据的时间间隔

ALTER TABLE test ON SCHEDULE EVERY 30 SECOND
ON COMPLETION PRESERVE
DO INSERT INTO new_table(name,age,sex) VALUES("张帆",13,"男",NOW());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DF10F-0001A

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值