mysql创建事件定时执行任务

本文介绍了MySQL事件调度器的基本语法及使用方法,并通过实例演示如何创建单次执行和重复执行的事件,帮助读者掌握事件调度器的各项参数设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先来看一下它的语法:

CREATE EVENT [IF NOT EXISTS] event_name
ON SCHEDULE schedule
[ON COMPLETION [NOT] PRESERVE]
[ENABLE | DISABLE]
[COMMENT ‘comment’]
DO sql_statement / call proce() ; –这可以是sql语句或 call 存储过程名()
schedule:
AT TIMESTAMP [+ INTERVAL INTERVAL]
| EVERY INTERVAL [STARTS TIMESTAMP] [ENDS TIMESTAMP]
INTERVAL:
quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
WEEK | SECOND | YEAR_MONTH
以上比较官方,我们通过一个例子来直观的理解一下:

  1. 首先创建一个测试test表格
    CREATE TABLE IF NOT EXISTS test(
    id INT PRIMARY KEY AUTO_INCREMENT,
    message VARCHAR(255) NOT NULL,
    created_at DATETIME NOT NUL);
  2. 使用SQL语句创建事件
    CREATE EVENT IF NOT EXISTS test_event_01
    ON SCHEDULE AT CURRENT_TIMESTAMP
    DO
    INSERT INTO test(message,created_at)
    VALUES(‘测试MySQL事件执行(1)’,NOW());
    此时刷新测试表就会出现插入了一条数据,这只是利用事件执行了一次我们来试着让它自动执行多次
  3. 以下语句创建每隔一分钟执行一次并且在创建时间后1小时内过期的重复事件:

CREATE EVENT test_event_03
ON SCHEDULE EVERY 1 MINUTE
STARTS CURRENT_TIMESTAMP
ENDS CURRENT_TIMESTAMP + INTERVAL 1 HOUR
DO
INSERT INTO test(message,created_at)
VALUES(‘测试MySQL重复事件’,NOW());

当然可以通过这些方法来仔细去体会每个参数的用法,建议使用数据库图形化工具来创建事件会简单很多,因为工具会利用图形化的方式帮助我们创建各种我们所需参数,希望可以帮助大家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值