mysql创建事件定时执行任务

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36285124/article/details/60576854

先来看一下它的语法:

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());

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

猜你喜欢

转载自blog.csdn.net/qq_36285124/article/details/60576854